Man kann Variablen an Funktionen per Referenz übergeben, so dass die Funktion ihre Argumente modifizieren kann. Dazu benutzt man folgende Syntax:
<?php
function foo(&$var)
{
$var++;
}
$a=5;
foo($a);
// $a ist 6
?>
Folgende Dinge können per Referenz übergeben werden:
Referenzen, zurückgegeben von einer Funktion, zum Beispiel:
<?php
function &bar()
{
$a = 5;
return $a;
}
foo(bar());
?>
Alle anderen Ausdrücke sollte nicht per Referenz übergeben werden, da das Ergebnis undefiniert ist. Folgende Beispiele sind etwa ungültig:
<?php
function bar() // Beachte das fehlende &
{
$a = 5;
return $a;
}
foo(bar()); // Fatal error seit PHP 5.0.5
foo($a = 5); // Ausdruck, keine Variable
foo(5); // Fatal error
?>