/** * @param string $name * @return string|URLSearchParams */ public function __get($name) { switch ($name) { case 'href': $value = $this->url->serializeURL(); break; case 'origin': $value = self::unicodeSerialiseOrigin($this->url->getOrigin()); break; case 'protocol': $value = $this->url->scheme . ':'; break; case 'username': $value = $this->url->username; break; case 'password': $value = is_null($this->url->password) ? '' : $this->url->password; break; case 'host': $value = is_null($this->url->host) ? '' : lib\HostProcessing::serializeHost($this->url->host) . (is_null($this->url->port) ? '' : ':' . $this->url->port); break; case 'hostname': $value = is_null($this->url->host) ? '' : lib\HostProcessing::serializeHost($this->url->host); break; case 'port': $value = is_null($this->url->port) ? '' : (string) $this->url->port; break; case 'pathname': $value = $this->url->nonRelativeFlag ? $this->url->path[0] : '/' . implode('/', $this->url->path); break; case 'search': $value = is_null($this->url->query) || $this->url->query === '' ? '' : '?' . $this->url->query; break; case 'searchParams': $value = $this->queryObject; break; case 'hash': $value = is_null($this->url->fragment) || $this->url->fragment === '' ? '' : '#' . $this->url->fragment; break; default: TypeHinter::triggerVisibilityErrorOrUndefinedNotice(); $value = null; } return $value; }