Рассматривать:
public function & get($name, $default = null)
Почему?
В синтаксисе PHP это означает, что функция возвращает ссылку вместо значения. Например:
<?php $foo = 'foo'; function & get_foo_ref () { global $foo; return $foo; } // Get the reference to variable $foo stored into $bar $bar = & get_foo_ref(); $bar = 'bar'; echo $foo; // Outputs 'bar', since $bar references to $foo. ?>
В приведенном выше примере удаление &
из объявления функции приведет к тому, что переменная $foo
прежнему будет содержать «foo», поскольку из функции возвращается только значение, а не ссылка.
Это чаще всего использовалось в PHP4, поскольку оно не передавало объекты по их ссылке и клонировало их. Из-за этого объектные переменные должны были передаваться по ссылке, чтобы избежать нежелательного клонирования. Это больше не относится к PHP5, и ссылки для этой цели не должны использоваться.
Однако функции, возвращающие ссылки, также не являются абсолютно бесполезными (или плохая практика, когда они не используются для замены ссылок на объекты).
Например, лично я использовал их при создании сценария, который передает «путь» к функции, которая возвращает ссылку на переменную в этом пути, что позволяет мне установить значение для нее и прочитать значение. Из-за рекурсивного характера функции возвращалась эта ссылка.
По праву
Это означает, что он возвращает ссылку на результат, а не копию его.
Возвращение ссылок в PHP
Проход PHP по метасимволу. См. « Передача по ссылке»