Parameterübergabe per Referenz
Referenzen aufheben
Referenzen in PHP
PHP Manual

## Referenzen zurückgeben

Das Zurückgeben von Ergebnissen per Referenz aus Funktionen heraus kann manchmal recht nüzlich sein, um herauszufinden, an welche Variable eine Referenz gebunden werden soll. Man sollte diese Funktionalität nicht aus Performancegründen benutzen, der Kern ist ist intelligent genug, um dies selbst zu optimieren. Man sollte Referenzen nur dann zurückgeben, wenn man sinnvolle technische Gründe hat. Hierbei ist folgende Syntax zu beachten:

`<?php
class foo {
public $value = 42;
public function &getValue() {
return $this->value;
}
}
$obj = new foo;
$myValue = &$obj->getValue(); // $myValue ist eine Referenz zu to $obj->value, mit dem Wert 42.
$obj->value = 2;
echo $myValue; // Zeigt den neuen Wert von $obj->value, also 2.
?>`
In diesem Beispiel wird also die Eigenschaft des von getValue gelieferten Objektes gesetzt, nicht die der Kopie, wie es der Fall wäre, wenn die Funktion getValue ihr Ergebnis nicht per Referenz liefern würde.

> Hinweis: Im Gegensatz zur Parameterübergabe per Referenz ist bei der Rückgabe mittels Referenz an beiden Stellen die Angabe des & notwendig.

> Hinweis: Wenn man versucht, eine Referenz aus einer Funktion mit der Syntax return ($this->value); zurückzugeben, wird das nicht funktionieren, weil man versucht, das Ergebnis eines Ausdrucks zurückzugeben und nicht eine Variable per Referenz. Man kann nur Variablen per Referenz aus einer Funktion zurückgeben - sonst nichts. Seit PHP 4.4.0 und PHP 5.1.0 wird ein `E_NOTICE`-Fehler erzeugt, wenn versucht wird, einen dynamischen Ausdruck oder das Ergebnis eines new zurückzugeben.

Parameterübergabe per Referenz
Referenzen aufheben
Referenzen in PHP
PHP Manual