PHP Referenzen erlauben es, zwei Variablennamen sich auf den
gleichen Variableninhalt beziehen zu lassen. Das heisst im
folgenden Beispiel, dass sich $a und
$b auf dieselbe Variable beziehen:
Anmerkung:
$a und $b sind hier
gleichwertig, und $a ist nicht nur ein
Zeiger auf $b oder umgekehrt, sondern
$a und $b zeigen auf
den selben Inhalt.
Seit PHP 4.0.4 kann & auch in Verbindung mit
new verwendet werden.
Anmerkung:
Wenn der & Operator nicht verwendet wird, erzeugt
PHP eine Kopie des Objekts. Wenn nun $this innerhalb
der Klasse verwendet wird, bezieht es sich auf die aktuelle Instanz der
Klasse. Die Zuordnung ohne & erzeugt eine Kopie der
Instanz (d.h. des Objekts) und $this wird sich auf
die Kopie beziehen. In der Regel will man aus Performance- und
Speicherverbrausgründen nur eine einzige Instanz einer Klasse
erzeugen. Dafür stellt PHP den & bereit.
Eine weitere Einsatzmöglichkeit von Referenzen ist die Übergabe
von Parametern an eine Funktion mit pass-by-reference. Hierbei
beziehen sich der lokale Variablenname als auch der Variablenname
der aufrufenden Instanz auf denselben Variableninhalt:
Nach der Ausführung hat
$a den Wert 6, da sich
in der Funktion
foo der Variablenname
$var auf denselben Variableninhalt bezieht wie
$a in der aufrufenden Instanz (hier das Hauptprogramm).
Daneben besteht die Möglichkeit aus Funktionen heraus Werte mit
return by-reference
zurückzugeben.