考慮以下幾點:對象複製與克隆在PHP
$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
而不是副本。 更改內容之前克隆對象的行爲就像一個副本。 這種行爲與變量發生的行爲不同,對我來說似乎很不直觀。
的這只是從缺少規範導致的另一個PHP-WTF。 –
請參閱此處的示例:http://www.php.net/manual/en/language.oop5.references.php。 –
你能否詳細說一下爲什麼這對你來說不直觀? – hakre