From: christian dot reinecke at web dot de Operating system: Mac OS X 10.5.3 PHP version: 5.2.6 PHP Bug Type: Compile Failure Bug description: comment terminates script processing
Description: ------------ I installed the php QCodo framework (Current Development Version, qcodo-0.3.43.tar.gz), which includes a couple of it's own files. qcodo/_core/framework/QApplicationBase.class.php includes on line 304 in a foreach-loop some files, in the last loop qcodo/_core/framework/QQuery.class.php this fails with no output (error_reporting on E_ALL | E_STRICT, display_errors true, same "output" (or missing output) when using error_log() instead of print/echo. // Preload Class Files var_dump(PHP_VERSION); //foreach (QApplication::$PreloadedClassFile as $strClassFile) { $x = "/Users/chriz/Documents/workspace/figufi.local/includes/qcodo/_core/framework/QQuery.class.php"; var_dump($x, is_file($x), is_readable($x), filesize($x)); flush(); $r = require $x; var_dump("$r, $x included"); flush(); //} echo "end"; exit; var_dump() is never executed in this case, the only output is string(5) "5.2.6" string(93) "/Users/chriz/Documents/workspace/figufi.local/includes/qcodo/_core/framework/QQuery.class.php" bool(true) bool(true) int(49564) using echo "byebye"; flush(); ob_end_flush(); die("-"); as first command in that file has no effect either. Deleting the file has the effect, that require fails. Now I started to delete content from the end of that file, this code still does not work: http://nopaste.php-quake.net/39881 If I delete the last empty method in this file, it works. (var_dump() and "end"/exit is shown). But it's getting more strange, if I don't remove that method, but remove the comment (!) above, it ends in an E_STRICT warning: Declaration of QQSubQuerySqlNode::GetColumnAlias() should be compatible with that of QQNode::GetColumnAlias() Error Type: E_STRICT This is NOT reproducable, neither on the same system (in another virtual host and simplified environment (less includes before)) nor on a Windows machine with the same PHP-Version. Removing a comment or method should not end in a script termination. Sorry for this hard bug report with nearly no starting point, but maybe there's something wrong with the parser about comments or inheritance. Expected result: ---------------- require the readable file and show the die() message at the beginning of the required file Actual result: -------------- require fails, neither the die() command in the required file is shown, nor something else after the require command it's definitly not about the existance of the file or denied access to the file, it's its content -- Edit bug report at http://bugs.php.net/?id=45643&edit=1 -- Try a CVS snapshot (PHP 5.2): http://bugs.php.net/fix.php?id=45643&r=trysnapshot52 Try a CVS snapshot (PHP 5.3): http://bugs.php.net/fix.php?id=45643&r=trysnapshot53 Try a CVS snapshot (PHP 6.0): http://bugs.php.net/fix.php?id=45643&r=trysnapshot60 Fixed in CVS: http://bugs.php.net/fix.php?id=45643&r=fixedcvs Fixed in release: http://bugs.php.net/fix.php?id=45643&r=alreadyfixed Need backtrace: http://bugs.php.net/fix.php?id=45643&r=needtrace Need Reproduce Script: http://bugs.php.net/fix.php?id=45643&r=needscript Try newer version: http://bugs.php.net/fix.php?id=45643&r=oldversion Not developer issue: http://bugs.php.net/fix.php?id=45643&r=support Expected behavior: http://bugs.php.net/fix.php?id=45643&r=notwrong Not enough info: http://bugs.php.net/fix.php?id=45643&r=notenoughinfo Submitted twice: http://bugs.php.net/fix.php?id=45643&r=submittedtwice register_globals: http://bugs.php.net/fix.php?id=45643&r=globals PHP 4 support discontinued: http://bugs.php.net/fix.php?id=45643&r=php4 Daylight Savings: http://bugs.php.net/fix.php?id=45643&r=dst IIS Stability: http://bugs.php.net/fix.php?id=45643&r=isapi Install GNU Sed: http://bugs.php.net/fix.php?id=45643&r=gnused Floating point limitations: http://bugs.php.net/fix.php?id=45643&r=float No Zend Extensions: http://bugs.php.net/fix.php?id=45643&r=nozend MySQL Configuration Error: http://bugs.php.net/fix.php?id=45643&r=mysqlcfg