considerar lo siguiente:objeto de copia en comparación con el clon en 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) { }
¿Es un comportamiento normal de PHP que $object2
tiene un contenido idéntico al $object1
?
Para mí suena como $object2
es una referencia a $object1
en lugar de una copia. La clonación del objeto antes de cambiar el contenido actúa como una copia. Este comportamiento es diferente de lo que sucede con las variables y me parece poco intuitivo.
Eso es sólo otro PHP-WTF resultante de las especificaciones que faltan. –
Vea el ejemplo aquí: http://www.php.net/manual/en/language.oop5.references.php. –
¿Puede explicar un poco por qué eso no es intuitivo para usted? – hakre