首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >缺少$GLOBALS的$_SERVER

缺少$GLOBALS的$_SERVER
EN

Stack Overflow用户
提问于 2013-07-09 10:18:52
回答 1查看 3.4K关注 0票数 5

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

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

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

代码语言:javascript
复制
var_dump($GLOBALS); 

结果是:

  • 在nginx +php-fpm下:缺少_SERVER_ENV_REQUEST
  • 在cli下:缺少_ENV_REQUEST

嗯..。也许医生里有关于这种行为的东西?我查看了每个变量的每一页:

  • _SERVERhttp://www.php.net/manual/en/reserved.variables.server.php
  • _ENVhttp://www.php.net/manual/en/reserved.variables.request.php
  • _REQUESThttp://www.php.net/manual/en/reserved.variables.request.php

我也没有发现任何关于这种行为的提及。为什么会这样?

我使用http://www.dotdeb.org/回购的debian软件包安装了php (没有手动编译).目前运行的nginx + php5-fpm。那是个php错误吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 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团队,所以回答得这么快!

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17545710

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档