Podemos pasar variables a una función por referencia, para que ésta pueda modificar sus argumentos. La sintáxis es la siguiente :
function foo (&$var)
{
$var++;
}
$a=5;
foo ($a);
// $a será 6 aqui
La lista siguiente indica que puede ser pasado por referencia:
Referencias, devueltas por una función:
function &bar()
{
$a = 5;
return $a;
}
foo(bar());
Cualquier otro tipo de expresión no debería pasarse por referencia, ya que el resultado sería indefinido. Los ejemplos de paso por referencia siguientes son inválidos:
function bar() // Notar que falta &
{
$a = 5;
return $a;
}
foo(bar());
foo($a = 5) // Expresión, no variable
foo(5) // Constante, no variable