Was Referenzen nicht sind
Wie bereits gesagt: Referenzen sind keine Zeiger. Das bedeutet, der folgende Code tut nicht, was man erwarten könnte:
<?php
function foo(&$var)
{
$var =& $GLOBALS["baz"];
}
foo($bar);
?>
Folgendes passiert: $var in foo wird zunächst an $bar aus der aufrufenden Instanz gebunden, wird dann aber neu gebunden an $GLOBALS["baz"]. Es gibt keine Möglichkeit, $bar unter Verwendung des Referenzmechanismus im aufrufenden Geltungsbereich an etwas anderes zu binden, da $bar in der Funktion foo nicht zur Verfügung steht (es wird durch $var repräsentiert, aber $var hat in der aufrufenden Symboltabelle nur Variableninhalte und keine Name-an-Wert-Bindung). Man kann die Rückgabe von Referenzen verwenden, um die von der Funktion ausgewählten Variablen zu referenzieren.