Referências
PHP Manual

Passagem por referência

Você pode passar uma variável por referência a uma função de forma que a função possa modificar a variável. A sintaxe é a seguinte:

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

$a=5;
foo($a);
// $a é 6 aqui
?>

Nota: Não há o sinal de referência na chamada da função - apenas nas definições de função. As definições de função, sozinhas, são suficientes para passar o argumento por referência. A partir do PHP 5.3.0 você receberá um alerta de "call-time pass-by-reference" está obsoleto quando usar o & na em chamadas de função: foo(&$a);. A partir do PHP 5.4.0, passagem por referência na chamada foi removido, e usar isso causará um erro fatal.

Os itens seguintes podem ser passados por referência:

Nenhuma outra expressão pode ser passada por referência pois não tem comportamento definido. Os seguintes exemplos de passagem por referência são inválidos:

<?php
function foo(&$var)
{
    
$var++;
}
function 
bar() // Repare que falta &
{
    
$a 5;
    return 
$a;
}
foo(bar()); // Produz um erro fatal no 5.0.5, alerta de padrão estrito
            // no PHP 5.1.1, e alerta no PHP 7.0.0

foo($a 5); // Expressão, não variável
foo(5); // Produz erro fatal
?>
Esses requerimentos valem a partir do PHP 4.0.4.


Referências
PHP Manual