--TEST-- Testing ReflectionClass::isCloneable() --EXTENSIONS-- simplexml xmlwriter --FILE-- isCloneable()); $obj = new ReflectionObject($foo); var_dump($obj->isCloneable()); $h = clone $foo; class bar { private function __clone() { } } $bar = new bar; print "User class - private __clone\n"; $obj = new ReflectionClass($bar); var_dump($obj->isCloneable()); $obj = new ReflectionObject($bar); var_dump($obj->isCloneable()); $h = clone $foo; print "Closure\n"; $closure = function () { }; $obj = new ReflectionClass($closure); var_dump($obj->isCloneable()); $obj = new ReflectionObject($closure); var_dump($obj->isCloneable()); $h = clone $closure; print "Internal class - SimpleXMLElement\n"; $obj = new ReflectionClass('simplexmlelement'); var_dump($obj->isCloneable()); $obj = new ReflectionObject(new simplexmlelement('')); var_dump($obj->isCloneable()); $h = clone new simplexmlelement(''); print "Internal class - XMLWriter\n"; $obj = new ReflectionClass('xmlwriter'); var_dump($obj->isCloneable()); $obj = new ReflectionObject(new XMLWriter); var_dump($obj->isCloneable()); $h = clone new xmlwriter; ?> --EXPECTF-- User class bool(true) bool(true) User class - private __clone bool(false) bool(false) Closure bool(true) bool(true) Internal class - SimpleXMLElement bool(true) bool(true) Internal class - XMLWriter bool(false) bool(false) Fatal error: Uncaught Error: Trying to clone an uncloneable object of class XMLWriter in %s:%d Stack trace: #0 {main} thrown in %s on line %d