similar function:
<?php
function isCloneable(object $obj): bool
{
return !method_exists($obj, '__clone') || is_callable([$obj, '__clone']);
}
?>
(PHP 5 >= 5.4.0, PHP 7, PHP 8)
ReflectionClass::isCloneable — Comprueba si la clase es o no clonable
Esta función no tiene parámetros.
Devuelve true
si la clase es clonable, o false
en caso contrario.
Ejemplo #1 Uso básico de ReflectionClass::isCloneable()
<?php
class NoClonable {
public $var1;
private function __clone() {
}
}
class Clonable {
public $var1;
}
$noClonable = new ReflectionClass('NoClonable');
$clonable = new ReflectionClass('Clonable');
var_dump($noClonable->isCloneable());
var_dump($clonable->isCloneable());
?>
El resultado del ejemplo sería:
bool(false) bool(true)
similar function:
<?php
function isCloneable(object $obj): bool
{
return !method_exists($obj, '__clone') || is_callable([$obj, '__clone']);
}
?>
this method checks 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 work for many of core-classes, just like most other reflection methods.