Iri::__get( string $name ): mixed

In this article

Overload __get() to provide access via properties

Parameters

$namestringrequired
Property name

Return

mixed

Source

public function __get($name) {
	// isset() returns false for null, we don't want to do that
	// Also why we use array_key_exists below instead of isset()
	$props = get_object_vars($this);

	if (
		$name === 'iri' ||
		$name === 'uri' ||
		$name === 'iauthority' ||
		$name === 'authority'
	) {
		$method = 'get_' . $name;
		$return = $this->$method();
	}
	elseif (array_key_exists($name, $props)) {
		$return = $this->$name;
	}
	// host -> ihost
	elseif (($prop = 'i' . $name) && array_key_exists($prop, $props)) {
		$name = $prop;
		$return = $this->$prop;
	}
	// ischeme -> scheme
	elseif (($prop = substr($name, 1)) && array_key_exists($prop, $props)) {
		$name = $prop;
		$return = $this->$prop;
	}
	else {
		trigger_error('Undefined property: ' . get_class($this) . '::' . $name, E_USER_NOTICE);
		$return = null;
	}

	if ($return === null && isset($this->normalization[$this->scheme][$name])) {
		return $this->normalization[$this->scheme][$name];
	}
	else {
		return $return;
	}
}

User Contributed Notes

You must log in before being able to contribute a note or feedback.