根据http://www.php.net/manual/en/reserved.variables.globals.php的说法:
一个关联数组,包含对当前在脚本的全局范围中定义的所有变量的引用。
因此,下面的代码必须显示$GLOBALS var具有_SERVER、_ENV (如果在php.ini中的variables_order中启用)和_REQUEST键:
var_dump($GLOBALS); 结果是:
_SERVER,_ENV,_REQUEST_ENV,_REQUEST嗯..。也许医生里有关于这种行为的东西?我查看了每个变量的每一页:
_SERVER:http://www.php.net/manual/en/reserved.variables.server.php_ENV:http://www.php.net/manual/en/reserved.variables.request.php_REQUEST:http://www.php.net/manual/en/reserved.variables.request.php我也没有发现任何关于这种行为的提及。为什么会这样?
我使用http://www.dotdeb.org/回购的debian软件包安装了php (没有手动编译).目前运行的nginx + php5-fpm。那是个php错误吗?
发布于 2013-07-09 12:06:51
我在php.net网站上创建了一个bug,php团队回答:https://bugs.php.net/bug.php?id=65223
摘要:
这不是窃听器。超级全球化(又名。在默认情况下,由于性能原因,除非解析器看到需要,否则将不向符号表添加自动全局( auto )。即
<?php $_SERVER; print_r($GLOBALS); ?>会列出来的。您也可以使用auto_globals_jit在php.ini:http://www.php.net/manual/en/ini.core.php#ini.auto-globals-jit中控制这一点。
谢谢php团队,所以回答得这么快!
https://stackoverflow.com/questions/17545710
复制相似问题