考虑以下:
$object1 = new stdClass();
$object2 = $object1;
$object3 = clone $object1;
$object1->content = 'Ciao';
var_dump($object1);
// Outputs object(stdClass)#1 (1) { ["content"]=> string(4) "Ciao" }
var_dump($object2);
// Outputs object(stdClass)#1 (1) { ["content"]=> string(4) "Ciao" }
var_dump($object3);
// Outputs object(stdClass)#2 (0) { }
是否是正常的PHP行为,$ object2的内容与$ object1相同?
对我来说,这听起来像$ object2是引用$ object1而不是副本。
在更改内容之前克隆对象确实像一个副本。
这种行为与变量发生的不同,对我来说似乎是不直观的。