ID: 44414 Updated by: [EMAIL PROTECTED] Reported By: [EMAIL PROTECTED] -Status: Assigned +Status: Closed Bug Type: Scripting Engine problem Operating System: * PHP Version: 5.3CVS-2008-03-12 (CVS) Assigned To: dmitry 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: ------------------------------------------------------------------------ [2008-03-12 09:14:54] [EMAIL PROTECTED] fix summary ------------------------------------------------------------------------ [2008-03-12 09:03:35] [EMAIL PROTECTED] Description: ------------ On some condition PHP may verify abstract method twice. First time it does it on early binding and the second time after executing of all ZEND_ADD_INTERFACE opcodes. As result we have not only speed penalty, but also an incorrect error message. Reproduce code: --------------- <?php abstract class A { abstract function foo(); } interface B { function bar(); } class C extends A implements B { } ?> Expected result: ---------------- Fatal error: Class C contains 2 abstract methods and must therefore be declared abstract or implement the remaining methods (A::foo, B::bar) Actual result: -------------- Fatal error: Class C contains 1 abstract method and must therefore be declared abstract or implement the remaining methods (A::foo) ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=44414&edit=1