ID: 30452
Updated by: [EMAIL PROTECTED]
Reported By: guth at fiifo dot u-psud dot fr
-Status: Assigned
+Status: Wont fix
Bug Type: Scripting Engine problem
Operating System: *
PHP Version: 5CVS-2005-06-19
Assigned To: dmitry
New Comment:
Interfaces and classes should be defined before they are used. PHP4
supported later declaration with classes, and PHP5 supports it for
backward compatibility, but we don't plan support for all compinations.
Previous Comments:
------------------------------------------------------------------------
[2005-06-24 10:56:44] gopalv82 at yahoo dot com
This looks like a bug with the runtime inheritance code-gen rather than
a parser bug.
The opcode dump I imagine looks something like
FETCH_CLASS "MyAbstractClass"
DECLARE_INHERITED_CLASS "MyClass"
DECLARE_CLASS "MyAbstractClass"
FETCH_CLASS "MyInterface"
ADD_INTERFACE
Linear opcode generation is just not possible (conditional classes !!
?)
------------------------------------------------------------------------
[2005-06-19 14:47:19] [EMAIL PROTECTED]
See also bug #30453
------------------------------------------------------------------------
[2005-05-09 11:31:34] [EMAIL PROTECTED]
Andi, (or Dmitry maybe?) can you look into this?
------------------------------------------------------------------------
[2004-10-16 01:56:33] guth at fiifo dot u-psud dot fr
Description:
------------
The following behaviour seems incorrect.
PHP founds the abstract class if it doesn't implement an interface, but
doen't found it if it implements an interface.
Reproduce code:
---------------
<?php
interface MyInterface { }
class MyClass extends MyAbstractClass { }
abstract class MyAbstractClass implements MyInterface { }
?>
<?php
interface MyInterface { }
class MyClass extends MyAbstractClass implements MyInterface { }
abstract class MyAbstractClass { }
?>
Expected result:
----------------
First :
- Should work
Second :
- Should work
Actual result:
--------------
First :
Fatal error: Class 'MyAbstractClass' not found in /www/test.php on line
5
Second :
- Work
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=30452&edit=1