Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

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