Referenzen in PHP
PHP Manual

Parameterübergabe per Referenz

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
?>
Zu beachten ist, dass kein Referenz-Zeichen beim Funktionsaufruf steht, nur in der Funktionsdefinition. Diese allein ist ausreichend, um das Argument per Referenz zu übergeben. In neueren PHP-Versionen gibt es eine Warnung, dass die Benutzung von "Call-time pass-by-reference" mit Hilfe von & in foo(&$a); veraltet ist.

Folgende Dinge können per Referenz übergeben werden:

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
?>
Diese Anforderungen gelten für PHP 4.0.4 und später.


Referenzen in PHP
PHP Manual