I wonder how this method decides of is it clonable or not. There is no explanation.
(PHP 5 >= 5.4.0, PHP 7, PHP 8)
ReflectionClass::isCloneable — Renseigne à propos de la propriété de duplication de la classe
Retourne si cette classe est clonable.
Cette fonction ne contient aucun paramètre.
Renvoie true
si la classe peut être clônée, false
sinon.
Exemple #1 Utilisation basique de 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());
?>
L'exemple ci-dessus va afficher :
bool(false) bool(true)
I wonder how this method decides of is it clonable or not. There is no explanation.
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
This does not work for many of core-classes, just like most other reflection methods.