clone方法,是不是两个对象指向一个引用
比如说有两个对象都是同一个原型clone出来的,如果修改了一个对象的值,另一个会不会受到影响,应该会吧。。。
比如说有两个对象都是同一个原型clone出来的,如果修改了一个对象的值,另一个会不会受到影响,应该会吧。。。
2015-03-27
并不会,clone出来的对象已经是另一个对象了,就比如我执行下面的代码
class Animal{
public $name = "Cat";
}
$cat = new Animal();
echo $cat->name."\n";
$dog = clone $cat;
echo $dog->name."\n";
$dog->name = "Dog";
echo $dog->name."\n";
var_dump($dog);
var_dump($cat);然后在运行的结果如下:
Cat
Cat
Dog
object(Animal)#2 (1) {
["name"]=>
string(3) "Dog"
}
object(Animal)#1 (1) {
["name"]=>
string(3) "Cat"
}
[Finished in 0.3s]注意,我var_dump出来的两个对象的#后面的id值是不同的,也就是说这是两个不同的对象,那么改变了Dog对象的name值也不会对Cat对象造成影响。
举报