Референции
PHP Manual

Връщане на референции

Връщането по референция е полезно, когато искате да използвате функция, за да намерите към коя променлива да се привърже референцията. Не използвайте връщането по референция, за да ускорите изпълнението. PHP ще оптимизира такива места сам. Връщайте референции единствено в случай, че имате добра техническа причина да го правите! За да върнете референция, използвайте този синтаксис:

<?php
class foo {
    public 
$value 42;

    public function &
getValue() {
        return 
$this->value;
    }
}

$obj = new foo;
$myValue = &$obj->getValue(); // $myValue е референция към $obj->value, която е 42.
$obj->value 2;
echo 
$myValue;                // отпечатва новата стойност на $obj->value, т.е. 2.
?>

В този пример ще бъде присвоено свойството на обекта, върнат от функцията getValue, а не копието, както щеше да бъде без използване на референтен синтаксис.

Забележка: За разлика от предаването на параметри, тук трябва да използвате & и на двете места - да укажете, че искате да върнете по референция, а не копие, и да укажете, че трябва да бъде извършено референтно свързване, вместо нормално присвояване на $myValue.

Забележка: Ако се опитате да върнете референция от функция със синтаксиса: return ($this->value); това няма да проработи, защото по този начин се опитвате да върнете по референция израз, а не променлива. По референция можете да връщате единствено променливи - нищо друго. След PHP 4.4.0, в разклонението PHP4, и PHP 5.1.0, в разклонението PHP5, се извежда грешка от ниво E_NOTICE, в случай че кодът се опита да върне динамичен израз или резултат от оператора new.


Референции
PHP Manual