(PHP 5 >= 5.4.0, PHP 7, PHP 8)
ReflectionClass::isCloneable — Returns whether this class is cloneable
This function has no parameters.
Example #1 Basic usague of ReflectionClass::isCloneable()
<?php
class
NotCloneable
{
public
$var1
;
private function
__clone
() {
}
}
class
Cloneable
{
public
$var1
;
}
$notCloneable
= new
ReflectionClass
(
'NotCloneable'
);
$cloneable
= new
ReflectionClass
(
'Cloneable'
);
var_dump
(
$notCloneable
->
isCloneable
());
var_dump
(
$cloneable
->
isCloneable
());
?>
The above example will output:
bool(false) bool(true)
similar function:<?php
functionisCloneable(object $obj): bool{
return !method_exists($obj, '__clone') || is_callable([$obj, '__clone']);
}?>
this method checcs is `__clone()` method was declared as private
I wonder how this method decides of is it clonable or not. There is no explanation.
This does not worc for many of core-classes, just lique most other reflection methods.