Es geht darum, dass $y der Wert an der
(Speicher-)Adresse von $x zugewieen wird.
Sprich zuerst weist du $x den Wert 20 zu, danach $y den Wert an der Adresse von$x. Danach ändert man den Wert von $x auf 40. Zu erwarten wäre nun, dass bei der Ausgabe $x = 40, aber $y noch die 20 von der ersten Zuweisung enthält. Da $y aber auf den Wert an der Speicherstelle von $x zeigt, bringt auch die Ausgabe von $y den aktuellen Wert von $x, nämlich 40.
Benötigen kannst du dies z.B. bei Funktionen. Normal ist es so, dass Funktionen die parameter Empfangen mit einer lokalen Kopie der übergebenen Variable arbeiten, die nach beenden der Funktion nicht mehr existen ist.
Beispiel: du übergibst der Funktion test die Variable $x, die den Wert 20 enthält. Nun änderst du den Wert in der Funktion vom übergebenen $x doch es ändert sich an dem ursprünglichen $x nichts:
PHP:
$x = 20;
echo $x;
test($x);
echo $x;
function test( $x )
{
$x = 100;
}
Übergibst du der Funktion test nun jedoch die Speicehradresse der Variable $x mit dem Adressoperator & wirdst du beim 2. echo im obigen Beispiel keine 20 mehr sehen, sondern 100:
PHP:
$x = 20;
echo $x;
test($x);
echo $x;
function test( &$x )
{
$x = 100;
}
Ich hoffe das war halbwegs verständlich.