如果您的 $_ENV 数组神秘地为空,但您在调用 getenv() 或在您的 phpinfo() 中仍然看到这些变量,请检查您的 http://us.php.net/manual/en/ini.core.php#ini.variables-order ini 设置以确保它在字符串中包含 "E"。
(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)
$_ENV — 环境变量
一个关联的 数组,其中包含通过环境方法传递给当前脚本的变量。
这些变量从 PHP 解析器运行的环境中导入到 PHP 的全局命名空间。其中许多是由运行 PHP 的 shell 提供的,并且不同的系统可能运行不同类型的 shell,因此不可能提供一个确定的列表。请参阅您的 shell 文档以获取定义的环境变量列表。
其他环境变量包括 CGI 变量,无论 PHP 运行的是服务器模块还是 CGI 处理器,都会放置在那里。
示例 #1 $_ENV 示例
<?php
echo '我的用户名是 ' .$_ENV["USER"] . '!';
?>
假设 "bjori" 执行此脚本
上面的示例将输出类似以下内容
My username is bjori!
注意:
这是一个“超级全局”或自动全局变量。这仅仅意味着它在整个脚本的所有范围内都是可用的。在函数或方法中访问它时,无需执行 global $variable;。
如果您的 $_ENV 数组神秘地为空,但您在调用 getenv() 或在您的 phpinfo() 中仍然看到这些变量,请检查您的 http://us.php.net/manual/en/ini.core.php#ini.variables-order ini 设置以确保它在字符串中包含 "E"。
请注意,写入 $_ENV 实际上不会设置环境变量,即该变量不会传播到您启动的任何子进程(除了派生的脚本进程,在这种情况下它只是脚本内存中的一个变量)。若要设置真正的环境变量,您必须使用 putenv()。
基本上,在 $_ENV 中设置变量除了设置或覆盖脚本范围内的全局变量之外没有任何意义。因此,除了测试目的(如果合适,请小心使用 putenv())以外,不应修改 $_ENV。
当写入 $_ENV 时,PHP 不会触发任何类型的错误或通知。