PHP $ GLOBALS缺少$ _SERVER

时间:2013-07-09 10:18:53

标签: php global-variables environment-variables

根据http://www.php.net/manual/en/reserved.variables.globals.php

  

一个关联数组,包含对所有变量的引用   目前在脚本的全局范围内定义。

因此,以下代码必须显示$ GLOBALS var具有_SERVER_ENV(如果在php.ini中的variables_order中启用)和_REQUEST键:

var_dump($GLOBALS); 

结果是:

  • 在nginx + php-fpm下:缺少_SERVER_ENV_REQUEST
  • 在cli下:缺少_ENV_REQUEST
嗯..也许在这个行为的文档中有smth?我查看了每个变量的每个页面:

我没有发现过这种行为。它为什么这样?

我使用来自http://www.dotdeb.org/ repo的debian软件包安装了php(没有手动编译)...目前正在使用nginx + php5-fpm运行。 这是一个php bug吗?

1 个答案:

答案 0 :(得分:6)

我在php.net网站上创建了一个错误,php团队回答:https://bugs.php.net/bug.php?id=65223

要点:

  

这不是错误。不添加超级全局(又名自动全局)   除非解析器,否则出于性能原因默认使用符号表   看到需要。即

     

<?php $_SERVER; print_r($GLOBALS); ?>

     

会列出来的。您也可以使用auto_globals_jit来控制它   php.ini中:   http://www.php.net/manual/en/ini.core.php#ini.auto-globals-jit

感谢php团队如此快速地回答!