PHP Handbuch
Zurück | Kapitel 14. Referenzen in PHP | Nach vorne

# Was Referenzen leisten

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:

    $a =&amp; $b

> 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.

    $bar =& new fooclass();
    $foo =& find_var ($bar);

> 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:

    function foo (&amp;$var) {
        $var++;
    }

    $a=5;
    foo ($a);

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.

Zurück | Zum Anfang | Nach vorne
Referenzen in PHP | Nach oben | Was Referenzen nicht sind