首页  >  文章  >  后端开发  >  为什么我的 $_ENV 数组是空的,为什么环境变量出现在 $_SERVER 中?

为什么我的 $_ENV 数组是空的,为什么环境变量出现在 $_SERVER 中?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-11-08 09:45:02825浏览

Why is my $_ENV array empty and why are environment variables appearing in $_SERVER?

为什么会出现空的 $_ENV 变量和神秘的 $_SERVER ?

在这个令人困惑的 PHP 问题中,用户会遇到空的 $_ENV 数组,尽管在 .htaccess 文件中设置环境变量。此外,变量以看似重复的方式莫名其妙地出现在 $_SERVER 数组中。

问题根源:

  1. $ _ENV 被隐藏默认值:

    • php.ini 的变量_顺序指令,通常设置为“GPCS”,默认情况下不包括“E”(ENV)。将此设置修改为“EGPCS”将启用 $_ENV。
  2. SetEnv 变量登陆 $_SERVER:

    • 设置环境在 .htaccess 中使用 SetEnv 的变量将它们放置在 $_SERVER 数组中,而不是$_ENV.

神秘的重复:

  • 变量在 $_SERVER 中出现两次([REDIRECT_FOO] 和 [ FOO]) 因为 Apache 会在原始变量名前加上 REDIRECT_ 前缀(如果它源自

替代解决方案:

  • getenv() 函数不受 php.ini 设置的影响,并且始终返回正确的值,无论如何案件的

总结:

理解这些设置和行为差异有助于解开为什么 $_ENV 可以为空以及为什么环境变量最终以 $ 结尾的谜团_服务器。如果您需要填充$_ENV,请记住修改variables_order并使用getenv()来可靠地检索环境变量。

以上是为什么我的 $_ENV 数组是空的,为什么环境变量出现在 $_SERVER 中?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn