1.2.352. Direct Call To __clone()¶
Direct call to magic method
__clone()
was forbidden. It is allowed since PHP 7.0.
From the RFC : Doing calls like $obj->`__clone( <https://www.php.net/manual/en/language.oop5.magic.php>`_ ) is now allowed. This was the only magic method that had a compile-time check preventing some calls to it, which doesn't make sense. If we allow all other magic methods to be called, there's no reason to forbid this one
.
<?php
class Foo {
function __clone() {}
}
$a = new Foo;
$a->__clone();
?>
See also Directly calling __clone is allowed.
1.2.352.1. Suggestions¶
Use the clone operator to call the __clone magic method
1.2.352.2. Specs¶
Short name |
Php/DirectCallToClone |
Rulesets |
All, CompatibilityPHP53, CompatibilityPHP54, CompatibilityPHP55, CompatibilityPHP56 |
Exakat since |
1.4.8 |
PHP Version |
With PHP 7.0 and more recent |
Severity |
Critical |
Time To Fix |
Slow (1 hour) |
Precision |
High |
Features |
clone, magic-method |
Available in |