Referências
PHP Manual

Passagem por referência

Você pode passar variáveis para funções por referência, então a função poderá modificar seus argumentos. A sintaxe é a seguinte:

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

$a=5;
foo ($a);
// $a é 6 aqui
?>
Note que não há o sinal de referência na chamada da função, somente na definição da função. A marcação na definição da função sozinha é suficiente para configurar corretamente a passagem de argumentos por referência. Em versões recentes do PHP você irá ter um aviso dizendo "Call-time pass-by-reference" é obsoleto quando usa um & em foo(&$a);.

As coisas a seguir podem ser passadas por referência:

Nenhuma outra expressão poderá ser passada por referência, com resultados indefinidos. Por exemplo, o exemplo seguinte de passagem por referência é inválido:

<?php
function bar() // Note a falta do &
{
    
$a 5;
    return 
$a;
}
foo(bar());

foo($a 5); // Expressão, não é variável
foo(5);      // Constante, não é variável
?>
Essas limitações valem para o PHP 4.0.4 em diante.


Referências
PHP Manual