ID:               34299
 Updated by:       [EMAIL PROTECTED]
 Reported By:      dennis at inmarket dot lviv dot ua
-Status:           Assigned
+Status:           Closed
 Bug Type:         Class/Object related
 Operating System: *
 PHP Version:      5.0.4
 Assigned To:      helly
 New Comment:

This bug has been fixed in CVS.

Snapshots of the sources are packaged every three hours; this change
will be in the next snapshot. You can grab the snapshot at
http://snaps.php.net/.
 
Thank you for the report, and for helping us make PHP better.




Previous Comments:
------------------------------------------------------------------------

[2005-08-29 23:33:24] [EMAIL PROTECTED]

Please try using this CVS snapshot:

  http://snaps.php.net/php5-latest.tar.gz
 
For Windows:
 
  http://snaps.php.net/win32/php5-win32-latest.zip



------------------------------------------------------------------------

[2005-08-29 23:16:21] 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


------------------------------------------------------------------------


-- 
Edit this bug report at http://bugs.php.net/?id=34299&edit=1

Reply via email to