From:             thomas at stauntons dot org
Operating system: OS X
PHP version:      5.0.0b4 (beta4)
PHP Bug Type:     *Compile Issues
Bug description:  php_check_syntax behavior

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 bug report at http://bugs.php.net/?id=27406&edit=1
-- 
Try a CVS snapshot (php4):  http://bugs.php.net/fix.php?id=27406&r=trysnapshot4
Try a CVS snapshot (php5):  http://bugs.php.net/fix.php?id=27406&r=trysnapshot5
Fixed in CVS:               http://bugs.php.net/fix.php?id=27406&r=fixedcvs
Fixed in release:           http://bugs.php.net/fix.php?id=27406&r=alreadyfixed
Need backtrace:             http://bugs.php.net/fix.php?id=27406&r=needtrace
Need Reproduce Script:      http://bugs.php.net/fix.php?id=27406&r=needscript
Try newer version:          http://bugs.php.net/fix.php?id=27406&r=oldversion
Not developer issue:        http://bugs.php.net/fix.php?id=27406&r=support
Expected behavior:          http://bugs.php.net/fix.php?id=27406&r=notwrong
Not enough info:            http://bugs.php.net/fix.php?id=27406&r=notenoughinfo
Submitted twice:            http://bugs.php.net/fix.php?id=27406&r=submittedtwice
register_globals:           http://bugs.php.net/fix.php?id=27406&r=globals
PHP 3 support discontinued: http://bugs.php.net/fix.php?id=27406&r=php3
Daylight Savings:           http://bugs.php.net/fix.php?id=27406&r=dst
IIS Stability:              http://bugs.php.net/fix.php?id=27406&r=isapi
Install GNU Sed:            http://bugs.php.net/fix.php?id=27406&r=gnused
Floating point limitations: http://bugs.php.net/fix.php?id=27406&r=float

Reply via email to