ID: 39403
Updated by: [EMAIL PROTECTED]
Reported By: baldurien at bbnwn dot eu
-Status: Open
+Status: Bogus
Bug Type: Feature/Change Request
Operating System: Irrelevant
PHP Version: 5.2.0
New Comment:
That's right, you can't implement an interface twice, that just doesn't
make any sense.
Previous Comments:
------------------------------------------------------------------------
[2006-11-06 16:48:20] baldurien at bbnwn dot eu
Description:
------------
Hi,
Since php5.2, all my classes have error due to something that changed
in php5.2 :
Fatal error: Class XtfLexer cannot implement previously implemented
interface XtfParserRegistrable
The reason of that ?
Well take a look at the classes (the code does not interest you as it's
not the problem)
interface XtfParserRegistrable {}
interface XtfHeaderHandler extends XtfParserRegistrable {}
class XtfLexer implements XtfHeaderHandler, XtfParserRegistrable {}
Because the interface extends XtfParserRegistrable, the XtfLexer can
not implements XtfParserRegistrable itself.
This is STUPID, REALLY STUPID.
What happens if one day I change the interface/classes I
implements/extends, and if I still wish to benefit from one interface
that is *possibly* implemented by my parents interfaces/classes?
Well : it will fails.
Reproduce code:
---------------
Try this :
interface XtfParserRegistrable {}
interface XtfHeaderHandler extends XtfParserRegistrable {}
class XtfLexer implements XtfHeaderHandler, XtfParserRegistrable {}
Expected result:
----------------
We can implements interface implemented by parent class/interface, and
no (fatal) error should be thrown.
Actual result:
--------------
We can't.
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=39403&edit=1