Что означает эта подпись (&) в PHP?

Рассматривать:

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 по метасимволу. См. « Передача по ссылке»