如果您的 $_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 中设置变量除了设置或覆盖脚本范围的全局变量之外没有任何意义。因此,除了测试目的外,不应修改 $_ENV(如果适用,也要小心使用 putenv())。
写入 $_ENV 时,PHP 不会触发任何类型的错误或通知。