ConFoo 2025

ReflectionClass::isCloneable

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

ReflectionClass::isCloneableПроверяет, можно ли клонировать этот класс

Описание

public ReflectionClass::isCloneable(): bool

Проверяет, можно ли клонировать этот класс.

Список параметров

У этой функции нет параметров.

Возвращаемые значения

Возвращает true, если класс можно клонировать, в противном случае false.

Примеры

Пример #1 Пример использования 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());
?>

Результат выполнения приведённого примера:

bool(false)
bool(true)

Добавить

Примечания пользователей 4 notes

up
1
info at ensostudio dot ru
2 years ago
similar function:
<?php
function isCloneable(object $obj): bool
{
return !
method_exists($obj, '__clone') || is_callable([$obj, '__clone']);
}
?>
up
0
info at ensostudio dot ru
2 years ago
this method checks is `__clone()` method was declared as private
up
0
xxxargonxxx at gmail dot com
5 years ago
I wonder how this method decides of is it clonable or not. There is no explanation.
up
-4
php at abiusx dot com
8 years ago
This does not work for many of core-classes, just like most other reflection methods.
To Top