PHP: Hypertext Preprocessor (original) (raw)

ReflectionClass::isCloneable

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

ReflectionClass::isCloneable — Returns whether this class is cloneable

Description

public ReflectionClass::isCloneable(): bool

Parameters

This function has no parameters.

Return Values

Returns [true](reserved.constants.php#constant.true) if the class is cloneable, [false](reserved.constants.php#constant.false) otherwise.

Examples

Example #1 Basic usage of ReflectionClass::isCloneable()

`<?php
class NotCloneable {
public $var1;

private function

__clone() {
}
}

class

Cloneable {
public $var1;
}$notCloneable = new ReflectionClass('NotCloneable'); cloneable=newReflectionClass(′Cloneable′);vardump(cloneable = new ReflectionClass('Cloneable');var_dump(cloneable=newReflectionClass(Cloneable);vardump(notCloneable->isCloneable());
var_dump($cloneable->isCloneable());
?>`

The above example will output:

Found A Problem?

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']); } ?>

info at ensostudio dot ru

2 years ago

this method checks is `__clone()` method was declared as private

xxxargonxxx at gmail dot com

5 years ago

I wonder how this method decides of is it clonable or not. There is no explanation.

php at abiusx dot com

8 years ago

This does not work for many of core-classes, just like most other reflection methods.