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

Предаване по референция

Можете да предавате променлива към функция по референция, така че функцията да може да я променя. Синтаксисът е както следва:

<?php
function foo(&$var)
{
    
$var++;
}

$a=5;
foo ($a);
// на това място $a е 6
?>

Забележете, че няма знак за референция в извикването на функцията, а единствено в дефиницията й. Дефиницията на функцията сама по себе си е достатъчна за правилното предаване на аргумент по референция. В по-скорошни версии на PHP ще получите предупреждение, споменаващо, че "Предаването по референция по време на извикване" ("Call-time pass-by-reference") е непрепоръчително, когато използвате & във foo(&$a);.

Следните неща могат да бъдат предавани по референция:

По референция не бива да бъдат предавани никакви други изрази, тъй като резултатът е недефиниран. Следният пример с предаване по референция е невалиден:

<?php
function bar() // Отбележете липсващия &
{
    
$a 5;
    return 
$a;
}

foo(bar()); // Предизвиква фатална грешка след PHP 5.0.5

foo($a 5); // Израз, а не променлива
foo(5); // Предизвиква фатална грешка
?>

Тези изисквания са за PHP 4.0.4 и по-късни.


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