isInstantiable() returns true for abstract classes
| Bug #34299 | ReflectionClass::isInstantiable() returns true for abstract classes | ||||
|---|---|---|---|---|---|
| Submitted: | 2005-08-29 23:16 UTC | Modified: | 2005-08-30 09:39 UTC | ||
| From: | dennis at inmarket dot lviv dot ua | Assigned: | helly (profile) | ||
| Status: | Closed | Package: | Class/Object related | ||
| PHP Version: | 5.0.4 | OS: | * | ||
| Private report: | No | CVE-ID: | None | ||
[2005-08-29 23:16 UTC] dennis at inmarket dot lviv dot ua
Description: ------------ ReflectionClass::isInstantiable() returns true for abstract classes. Of course, subsequent call to ReflectionClass::newInstance() fails. Please note: this is not the same as bug #28895 (which claims to be solved) - that bug submitter stressed that isAbstract always returns false. In this case, isAbstract returns true, but the isInstantiable also returns true. Reproduce code: --------------- <? abstract class X {} $rc = new ReflectionClass('X'); echo $rc->isAbstract() ? 'yes' : 'no', "\n"; if($rc->isInstantiable()) { echo "Class X is instantiable"; $x = $rc->newInstance(); } else { echo "Cannot instantiate abstract class"; } ?> Expected result: ---------------- yes Cannot instantiate abstract class Actual result: -------------- yes Class X is instantiable Fatal error: Cannot instantiate abstract class X in /path/to/abstract.php on line 9
Patches
Pull Requests
History
AllCommentsChangesGit/SVN commits
[2005-08-30 09:39 UTC] helly@php.net