Рассмотрим:
public function & get($name, $default = null)
Почему &?
Рассмотрим:
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, и ссылки не должны использоваться для этой цели.
Однако функции, возвращающие ссылки, также не являются абсолютно бесполезными (или плохая практика, когда они не используются для замены ссылок на объекты).
Например, лично я использовал их при создании script, который передает "путь" к функции, которая возвращает ссылку на переменную в этом пути, позволяя мне установить значение для нее и прочитать значение. Из-за рекурсивного характера функции возвращалась эта ссылка.
Это означает, что он возвращает ссылку на результат, а не его копию.
PHP передается по метафайлу. См. Передача по ссылке