Ich dachte ich würde &$a verstehen

Unteres Beispiel ist mir unlogisch ab Zeile 10
Hab ich von hier:
http://www.worldzone.net/computers/kjkoruth/lesson2a…

  1. $a=„Sam“; // assigns Sam to $a
  2. $b=„Jack“; //assigns Jack to $b
  3. $a="$b"; // assigns Jack to $a
  4. echo $a; // ouput of $a is Jack
  5. echo $b; // output of $b also Jack
  6. $a=„Sam“; // assigns Sam to $a
  7. $b=„Jack“; //assigns Jack to $b
  8. $b=&$a; // references $a through or via $b
  9. $b=„new“; // changes the value of $b
  10. echo $b; // output of $b is new

Ich dachte &$a wäre die Referenz auf den Wert.
Also nur eine Hexadezimale Zahl die auf den Speicherpaltz zeigt.
Wieso wird dann in 11 auch der Wert von $a geändert ?

/ ?

Gruß sebastian

Ich dachte &$a wäre die Referenz auf den Wert.
Also nur eine Hexadezimale Zahl die auf den Speicherpaltz
zeigt.

Siehe:
http://www.php.net/manual/en/language.references.php

„References in PHP are a means to access the same variable content by different names. They are not like C pointers, they are symbol table aliases.“

D.h. ob du $a oder $b veränderst, ist egal, da beide den gleichen Inhalt haben.

Wieso wird dann in 11 auch der Wert von $a geändert ?

referenz bilden heisst:
der container mit dem inhalt „Sam“ bekommt zum bereits bestehendenen namen einen neuen namen… du hast dann 2 namen fuer die selbe sache naemlich den container vom typ string mit dem inhalt „Sam“ der im speicher zufaellig an 0xQWERTZ steht