Warnung unterdrücken ohne direkte php.ini-rechte

Ich versuch dasm al simpel zu erklären:

PHP:
$a = 1;
$b = $a;

var_dump($b);
var_dump($a);
Bei beiden Variablen sollte (int)1 rauskommen. Soweit so gut. Der Unterschiedl iegt wie immer im Detail, und für den Nutzer nich sichtbar: die Speicheradresse! $a verwendet eine andere Speicheradresse als $b. Schauen wir uns mal das erweiterte Beispiel an:
PHP:
$a = 1;
$b = $a;

$a = 5

var_dump($b);
var_dump($a);
Jetzt hat $a (int)5 und $b hat (int)1. Wenn man also den Operator "=" verwendet, wie oben zu sehen, wird nur der Inhalt der Speicheradresse in eine andere Speicheradresse kopiert.

Nun der "&" Operator ins Spiel. Zuvor haben wir ja Inhalte kopiert. Nun machen wir es andersherum: wir sagen $b, es solle doch die Speicheradresse von $a benutzen! Man spricht hierbeiu auf von einer Referenz.
PHP:
$a = 1;
$b = &$a;

$a = 5;

var_dump($b);
var_dump($a);
Nun kommt folgendes raus: $a (int)5 und $b (int)5, weil beide die gleiche Speicheradresse verwenden.

Wer es noch einfacher erklärt haben will, dem mal ich dann nen Schrank mit Schubladen auf - und auf jeder Schublade steht mindestens ein Variablenname ;) Das Beispiel hat ein Programmierlehrer immer verwendet - ein besseres gibt es glaube ich nicht :D


Gruß Radhad
 

Neue Beiträge

Zurück