Grafik- und Textanalyse: Ist die Zuweisungsoperation von PHP-Objekten „Wertübergabe' oder „Adressenübergabe'?

不言
Freigeben: 2023-03-24 13:52:01
Original
1694 Leute haben es durchsucht

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 = &#39;hello world&#39;;



$b = $a;



$a = &#39;bey world&#39;;







var_dump($a);



var_dump($b);



?>
Nach dem Login kopieren


<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/>
Nach dem Login kopieren
<?php
class Person
{
    public $name;
    public $age;
}
 
$a = new Person();
$b = $a;
$c = &$a;
$a->name = &#39;gavin&#39;;
$a = null;
 
var_dump($b);
var_dump($a);
var_dump($c);
Nach dem Login kopieren

Ausführungsergebnis: <br/> <br/>

object(Person)#1 (2) { ["name"]=> string(5) "gavin" ["age"]=> NULL } 

NULL 

NULL
Nach dem Login kopieren


<br/>Das Obige Beispiel Der Operationsprozess von Variablen ist ungefähr wie folgt: <br/>

$b = $a;

$c =& $a;
Nach dem Login kopieren


<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;
Nach dem Login kopieren


<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; //创建一个对象副本
Nach dem Login kopieren




In diesem Artikel haben wir die Zuweisungsoperation von Objekten in PHP geteilt. Die Objektadresse wird übergeben, anstatt das Objekt zu kopieren. Sie können den Klonoperator in PHP verwenden, um Objekte zu kopieren. Meine Fähigkeiten sind begrenzt. Wenn Sie in diesem Artikel irgendwelche „Fehler“ finden, können Sie mir gerne einige Ratschläge geben. Wenn Sie gleichzeitig weitere Fragen oder Erkenntnisse haben, können Sie diese gerne mitteilen. Wir lernen gemeinsam, kommunizieren gemeinsam und machen gemeinsam Fortschritte.

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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage