Heim > Artikel > Backend-Entwicklung > PHP-Objekte und Referenzen
Ein wichtiger Punkt, der bei der Objektprogrammierung in PHP5 oft erwähnt wird, ist, dass „Objekte standardmäßig per Referenz übergeben werden“. Aber eigentlich ist das nicht ganz richtig. Hier einige Beispiele zur Veranschaulichung.
Die Referenz von PHP ist ein Alias, das heißt, zwei verschiedene Variablennamen verweisen auf denselben Inhalt. In PHP5 enthält eine Objektvariable nicht mehr den Wert des gesamten Objekts. Speichern Sie einfach eine Kennung, um auf den tatsächlichen Objektinhalt zuzugreifen. Wenn ein Objekt als Parameter übergeben, als Ergebnis zurückgegeben oder einer anderen Variablen zugewiesen wird, hat die andere Variable keine Referenzbeziehung zum Original, aber beide speichern eine Kopie desselben Bezeichners, der auf den tatsächlichen Inhalt von verweist das gleiche Objekt.
Beispiel #1 Referenzen und Objekte
<?php class A { public $foo = 1; } $a = new A; $b = $a; // $a ,$b都是同一个标识符的拷贝 // ($a) = ($b) = <id> $b->foo = 2; echo $a->foo."\n"; $c = new A; $d = &$c; // $c ,$d是引用 // ($c,$d) = <id> $d->foo = 2; echo $c->foo."\n"; $e = new A; function foo($obj) { // ($obj) = ($e) = <id> $obj->foo = 2; } foo($e); echo $e->foo."\n"; ?>
Die obige Routine gibt Folgendes aus:
2 2 2