Der Inhalt dieses Artikels handelt davon, ob die Zuweisungsoperation von PHP-Objekten in der Grafik- und Textanalyse „Wertübergabe“ oder „Adressenübergabe“ ist. Jetzt teile ich es mit Ihnen Bedarf kann darauf verweisen
Wir wissen, dass Variablen standardmäßig immer nach Wert zugewiesen werden. Das heißt, wenn der Wert eines Ausdrucks einer Variablen zugewiesen wird, wird der Wert des gesamten ursprünglichen Ausdrucks der Zielvariablen zugewiesen. Das heißt, wenn der Wert einer Variablen einer anderen Variablen zugewiesen wird, hat die Änderung des Werts einer Variablen keine Auswirkungen auf die andere Variable.
Ein einfaches Beispiel:
<?php $a = 'hello world'; $b = $a; $a = 'bey world'; var_dump($a); var_dump($b); ?>
<br/>Zu diesem Zeitpunkt ist $b = $a, die Speicherung im Speicher sieht ungefähr so aus: <br/>
<br/>Aber wenn ein Objekt instanziiert wird, wird das Objekt nicht als Wert übergeben, sondern die Adresse des Objekts. Das heißt, es wird nicht das gesamte Objekt kopiert, da dies zeitaufwändig und speicherintensiv wäre. <br/>Geben Sie auch ein einfaches Beispiel: <br/>
<br/>
<?php class Person { public $name; public $age; } $a = new Person(); $b = $a; $c = &$a; $a->name = 'gavin'; $a = null; var_dump($b); var_dump($a); var_dump($c);
Ausführungsergebnis: <br/> <br/>
object(Person)#1 (2) { ["name"]=> string(5) "gavin" ["age"]=> NULL } NULL NULL
<br/>Das Obige Beispiel Der Operationsprozess von Variablen ist ungefähr wie folgt: <br/>
$b = $a; $c =& $a;
<br/>Wenn Sie einer neuen Variablen eine Objektinstanz zuweisen, greift die neue Variable auf dieselbe Instanz zu. <br/>Referenzzuweisung (&) bedeutet, dass die neue Variable auf die ursprüngliche Variable verweist, also zu deren „Alias“ oder „Zeiger“ wird. Das Ändern der neuen Variablen wirkt sich auf die ursprüngliche Variable aus und umgekehrt. <br/>
<br/>
$a = null;
<br/>
Vielleicht werden Sie fragen, wie Sie das können, da die direkte Zuweisung nicht das Kopieren des Objekts bedeutet das Objekt kopieren? Wolltuch? Um ein Kopierobjekt in PHP zu klonen, verwenden Sie den Klonoperator: <br/>
$f = new Person(); $b = clone $f; //创建一个对象副本
Verwandte Empfehlungen:
So implementieren Sie das Klonen von PHP-Objekten
Das obige ist der detaillierte Inhalt vonGrafik- und Textanalyse: Ist die Zuweisungsoperation von PHP-Objekten „Wertübergabe' oder „Adressenübergabe'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!