Php 对象引用
在PHP中,我有一个简单的类Php 对象引用,php,oop,Php,Oop,在PHP中,我有一个简单的类 <?php class Person { var $first_name = "factory method"; } ?> 我得到的是:$person1=null和$person2都不是null,看起来$person1和$person2根本没有指向同一个东西 但当我做下面这样的事情时: $person1 = new Person(); $person2 = $person1; $person2->first_name = "program
<?php
class Person {
var $first_name = "factory method";
}
?>
我得到的是:$person1=null和$person2都不是null,看起来$person1和$person2根本没有指向同一个东西
但当我做下面这样的事情时:
$person1 = new Person();
$person2 = $person1;
$person2->first_name = "programming";
echo $person1->first_name;
echo $person2->first_name;
我得到了同样的东西“编程”,所以我认为$person1和$person2都指向同一个东西
有人能解释一下为什么会这样吗?不要把指针和引用混在一起。
之后$person1=null代码>此变量引用不同的内容,因为您为该变量分配了不同的内容。与
$person1 = $person2 = new Person;
两者都引用相同的单个对象实例。使用$person2->first\u name
可以更改此对象,而不是仍然引用该对象的变量。在第一个示例中将$person1设置为null后,它不再引用您创建的Person对象,而$person2仍然是
在第二个示例中,$person和$person2都引用同一个对象
请参阅上的PHP手册。请参阅和注释。
$person1 = $person2 = new Person;