Clone clone clone
<?php
class a {}
$a = new a;
// object(a)#1 (0) {}
var_dump($b = clone clone clone $a);
// object(a)#2 (0) {}
var_dump(new (new $a));
// object(a)#3 (0) {}
Il est possible de chaîner les opérateurs clone : PHP optimise cela et ignore les clones intermédiaires. L’objet final résultant est le numéro 2, les clones internes ont donc bien été ignorés.
En revanche, il est possible de créer un nouvel objet à partir d’un objet existant, mais il n’est pas possible de chaîner les appels à new sans utiliser de parenthèses.
See Also
PHP Features
Last updated: 22 October 2026