Vergleich zwischen Variablenzuweisung und Objektzuweisung
<?php // 声明一个变量并赋值 $a = 1; // 将数据类型的值 赋值 给一个变量 $b = $a; // 修改$a的值 $a = 2; // $a和$b是两个独立的内存空间修改其中一个另一个不受影响 echo $b; // 1 class Person { public $name; public $age; } // 将对象类型的数据 赋值 给一个变量 $p = new Person; // 通过对属性修改值,来确定面向对象中 对象的传值方式 $p->name = 'jesse'; // 若是成功修改值,则是引用传值 echo $p->name; // jesse ?>
Fallerklärung:
Hier wird die Zuweisungsmethode von Variablen und die Die Objektzuweisungsmethode wird verglichen. Im Vergleich zur Zuweisungsmethode lautet die Zuweisungsmethode in Zeile 5 des Codes „Zuweisung kopieren“. Wenn also der Quellwert (der Wert von $a) geändert wird, wird der Wert von $b nicht beeinflusst . Das Speicherbeziehungsdiagramm von $a und $b lautet wie folgt:
Zeile 20 des Codes weist den Datentyp der Variablen $p zu und ändert den darin enthaltenen Wert erfolgreich das Objekt durch $p. Vergleichen Sie die Variablen. Die Wertübergabemethode beweist, dass es sich um eine Referenzübergabe handelt. Das Speicherbeziehungsdiagramm lautet wie folgt:
Und Zeile 20 des Der Code weist der Variablen $p den Datentyp zu und ändert das Innere des Objekts über $p. Der Vergleich der Wertübertragungsmethode der Variablen zeigt, dass es sich um eine Referenzübertragung handelt folgt:
<?php class Person { public $name; public $age; // 将对象类型的数据 赋值 给一个变量 $p = new Person; // 通过对属性修改值,来确定面向对象中 对象的传值方式 $p->name = 'jesse'; // 将对象赋予另一变量 $m = $p; // 另一变量修改属性值 $m->name = 'Marry'; // 输出源变量 赋值变量访问内部属性的结果 echo $p->name, $m->name; } ?>
Die 12. Codezeile ist der „Schönheits“-Code dieses Artikels. Die rechte Seite des Gleichheitszeichens ist ein Objekt und die linke Seite ist eine Variable, also kommt hier das Scharfe Frage: Kopiert $m das Objekt? Oder als Referenz weitergeben? Die Speicherbeziehung dieses Codes ist wie folgt:
Die Attributwerte der letzten beiden Objekte werden also in „Heiraten!!!“ geändert.
Wie ist die Situation?
<?php class Person { public $name; public $age; } // 将对象类型的数据 赋值 给一个变量 $p = new Person; // 通过对属性修改值,来确定面向对象中 对象的传值方式 $p->name = 'jesse'; // 将对象赋予另一变量 $m = &$p; // 另一变量修改属性值 $m->name = 'Marry'; // 输出源变量 赋值变量访问内部属性的结果 echo $p->name, $m->name; ?>
Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website: PHP-Video-Tutorial
Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Objektwertübertragungsmethode in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!