Bug #77183 [Opn]: $_SERVER is not set in preloaded classes

From: Date: Thu, 22 Nov 2018 13:19:44 +0000
Subject: Bug #77183 [Opn]: $_SERVER is not set in preloaded classes
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-218084@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=77183&edit=1 ID: 77183 Updated by: cmb@php.net Reported by: benjamin dot morel at gmail dot com Summary: $_SERVER is not set in preloaded classes Status: Open Type: Bug Package: opcache Operating System: Fedora 29 PHP Version: master-Git-2018-11-20 (Git) Block user comment: N Private report: N New Comment: > Restart php-fpm Aha! I've only tested on CLI; apparently, the issue only affects some SAPIs. Previous Comments: ------------------------------------------------------------------------ [2018-11-22 10:20:11] benjamin dot morel at gmail dot com Weird. I reproduced it again today with the latest master. Full reproduce steps: 1. Create /var/www/html/index.php as above 2. Create /var/www/html/class.php as above 3. Create /var/www/html/preload.php as above; change the path to an absolute path: opcache_compile_file('/var/www/html/class.php'); 4. Add this line to php.ini: opcache.preload = /var/www/html/preload.php 5. Restart php-fpm 6. Load http://localhost/ You should get the error: Notice: Undefined variable: _SERVER in /var/www/html/class.php on line 6 ------------------------------------------------------------------------ [2018-11-21 18:15:54] cmb@php.net Works for me. ------------------------------------------------------------------------ [2018-11-20 15:38:44] benjamin dot morel at gmail dot com Description: ------------ When using a preloaded class that references $_SERVER, the variable is not set. When setting auto_globals_jit to Off, it works. Test script: --------------- index.php ======== <?php header('Content-Type: text/plain'); print_r(Test::getServer()); class.php ========= <?php class Test { public static function getServer() { return $_SERVER; } } preload.php =========== <?php opcache_compile_file('class.php'); Expected result: ---------------- Array( ... ) Actual result: -------------- Notice: Undefined variable: _SERVER in /var/www/html/class.php on line 6 ------------------------------------------------------------------------ -- Edit this bug report at https://bugs.php.net/bug.php?id=77183&edit=1

« previous php.bugs (#218084) next »