ID: 35117 Updated by: [EMAIL PROTECTED] Reported By: [EMAIL PROTECTED] -Status: Open +Status: Feedback Bug Type: Variables related Operating System: Debian sarge PHP Version: 5.1.0RC4 New Comment:
Please try using this CVS snapshot: http://snaps.php.net/php5-latest.tar.gz For Windows: http://snaps.php.net/win32/php5-win32-latest.zip I can't reproduce this. And what configure line did you use? Previous Comments: ------------------------------------------------------------------------ [2005-11-05 19:39:04] [EMAIL PROTECTED] Description: ------------ I noticed the following error after moving a Web site's code to a machine running PHP 5.1RC4: PHP Notice: Undefined variable: _SERVER in /data/home/ramsey/public_html/file.inc on line 2 This didn't make any sense, however for two reasons: 1) I'm able to use $_SERVER in other scripts, and 2) this variable should be an auto-global. The difference with this script, though, is that it is an .inc file that is included and executed within a parent script. If I place "global $_SERVER;" at the top of the included file, then it has access to the $_SERVER auto-global array--on the first load of the page only. Each subsequent load of the page again produces the PHP Notice above. I haven't tested this with other auto-globals, so I don't know whether they have the same problems. I created two simple test scripts to reproduce this (shown in the "reproduce code" section). I noticed that the first time I loaded the page, it showed the $_SERVER array just fine, but on each subsequent load, it generates the undefined variable notice given above. Everytime I make a change (any change) to the page and load it, the array shows up on the first load only. With this in mind, I realized that the problem was probably not with the auto-global array but with APC, which I also have installed (using "pecl install apc" and accepting the default configuration values). When I comment out the APC extension line in php.ini, the $_SERVER array shows up perfectly on each load of the page. Reproduce code: --------------- test.php: <?php include_once 'file.inc'; ?> file.inc: <?php print_r($_SERVER); ?> Expected result: ---------------- I should see the print_r() output of the $_SERVER auto-global array each time the page loads. Actual result: -------------- A PHP notice that occurs each time the page loads (but I noticed that the expected result occurred the first time the page loaded): PHP Notice: Undefined variable: _SERVER in /data/home/ramsey/public_html/file.inc on line 2 ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=35117&edit=1