ID: 27406
Updated by: [EMAIL PROTECTED]
Reported By: thomas at stauntons dot org
-Status: Open
+Status: Assigned
Bug Type: Zend Engine 2 problem
Operating System: OS X
PHP Version: 5.0.0b4 (beta4)
-Assigned To:
+Assigned To: iliaa
New Comment:
Ilia, maybe this function wasn't such a good idea after all?
Here's the first misuse of it already..
Previous Comments:
------------------------------------------------------------------------
[2004-02-26 11:00:17] thomas at stauntons dot org
Description:
------------
I am writing a class that will include another file
containing a class that needs to implement a specific
interface. When calling php_check_syntax on the file its
behavious differs depending on whether or not the class
implements my interface. If the file implements my
interface the class will not show up in
get_declared_classes() and an include() of the file will
work, but if the class doesn't implement my interface the
class will be in get_declared_classes() and the include
will fail with 'cannot redeclareclass'
Reproduce code:
---------------
in Main.php
<?php
interface MustImplement {}
if (!php_check_syntax('includeme.php'))
die('Bad Syntax\n');
else include('includeme.php');
?>
in includeme.php (Case 1)
<?php
class AClass implements MustImplement
{}
?>
in includeme.php (Case 2)
<?php
class AClass
{}
?>
Expected result:
----------------
Case 1 of includeme.php will work OK, php_syntax_check will
succeed and include will load the file OK, AClass will be
available.
Case 2 will fail, php_syntax_check will work but include
will fail with 'cannot redeclare class' & Illegal
Instruction
Actual result:
--------------
Just as Above.
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=27406&edit=1