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

Reply via email to