Cópia do objeto versus clone no PHP
Considere o seguinte
$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) { }
É um comportamento PHP normal que$object2
tem um conteúdo idêntico a$object1
?
Para mim soa como$object2
é uma referência a$object1
em vez de uma cópia. A clonagem do objeto antes de alterar o conteúdo funciona como uma cópia. Esse comportamento é diferente do que acontece com as variáveis e parece pouco intuitivo para mi