From: faraco dot phpbugs at mailnull dot com Operating system: Windows NT4 SP6 PHP version: 5.0.0RC1 PHP Bug Type: *Directory/Filesystem functions Bug description: Bad behavior of require() function
Description: ------------ I have the following file structure (folders in uppercase for better understanding): DOCROOT | +- LIB | | | +- functions.php | +- SUBROOT | +- index.php | +- LIB | +- functions.php The 'index.php' file uses the require() function to include both 'functions.php' files (that have different contents). When running 'index.php', a "Cannot redeclare function" error occurs. Pay attention at the error message: the compiler says that the same function is redeclared in the same file on different lines! Reproduce code: --------------- DOC_ROOT/LIB/functions.php -------------------------- <? echo "Here is DOCROOT\\LIB\\functions.php<br>"; function anyfunction($param) { return $param; } ?> DOCROOT/SUBROOT/LIB/functions.php --------------------------------- <? echo "Here is DOCROOT\\SUBROOT\\LIB\\functions.php<br>"; ?> DOC_ROOT/SUBROOT/LIB/index.php ------------------------------ <? require("../lib/functions.php"); require("lib/functions.php"); echo anyfunction("Hello World!"); ?> Expected result: ---------------- Here is DOCROOT\LIB\functions.php Here is DOCROOT\SUBROOT\LIB\functions.php Hello World! Actual result: -------------- Here is DOCROOT\LIB\functions.php PHP Fatal error: Cannot redeclare anyfunction() (previously declared in C:\doc_root\lib\functions.php:4) in E:\doc_root\lib\functions.php on line 7 -- Edit bug report at http://bugs.php.net/?id=27891&edit=1 -- Try a CVS snapshot (php4): http://bugs.php.net/fix.php?id=27891&r=trysnapshot4 Try a CVS snapshot (php5): http://bugs.php.net/fix.php?id=27891&r=trysnapshot5 Fixed in CVS: http://bugs.php.net/fix.php?id=27891&r=fixedcvs Fixed in release: http://bugs.php.net/fix.php?id=27891&r=alreadyfixed Need backtrace: http://bugs.php.net/fix.php?id=27891&r=needtrace Need Reproduce Script: http://bugs.php.net/fix.php?id=27891&r=needscript Try newer version: http://bugs.php.net/fix.php?id=27891&r=oldversion Not developer issue: http://bugs.php.net/fix.php?id=27891&r=support Expected behavior: http://bugs.php.net/fix.php?id=27891&r=notwrong Not enough info: http://bugs.php.net/fix.php?id=27891&r=notenoughinfo Submitted twice: http://bugs.php.net/fix.php?id=27891&r=submittedtwice register_globals: http://bugs.php.net/fix.php?id=27891&r=globals PHP 3 support discontinued: http://bugs.php.net/fix.php?id=27891&r=php3 Daylight Savings: http://bugs.php.net/fix.php?id=27891&r=dst IIS Stability: http://bugs.php.net/fix.php?id=27891&r=isapi Install GNU Sed: http://bugs.php.net/fix.php?id=27891&r=gnused Floating point limitations: http://bugs.php.net/fix.php?id=27891&r=float