php $_ENV 环境变量详解
环境变量:$_ENV 注: 在 PHP 4.1.0 及以后版本使用,之前的版本,使用 $HTTP_ENV_VARS,在解析器运行时,这些变量从环境变量转变为 PHP 全局变量名称空间(namespace),它们中的许多都是由 PHP 所运行的系统决定,完整的列表是不可能的,请查看系统的文档以确定其特定的环境变量.
环境变量:$_ENV
注: 在 PHP 4.1.0 及以后版本使用,之前的版本,使用 $HTTP_ENV_VARS。
在解析器运行时,这些变量从环境变量转变为 PHP 全局变量名称空间(namespace),它们中的许多都是由 PHP 所运行的系统决定,完整的列表是不可能的,请查看系统的文档以确定其特定的环境变量.
其它环境变量(包括 CGI 变量),无论 PHP 是以服务器模块或是以 CGI 处理方式运行,都在这里列出了.
这是一个“superglobal”,或者可以描述为自动全局变量,这只不过意味这它在所有的脚本中都有效,在函数或方法中不需要使用 global $_ENV; 来访问它,就如同使用 $HTTP_ENV_VARS 一样.
$HTTP_ENV_VARS 包含着同样的信息,但是不是一个自动全局变量(注意:$HTTP_ENV_VARS 和 $_ENV 是不同的变量,PHP 处理它们的方式不同).
如果设置了 register_globals 指令,这些变量也在所有脚本中可用,也就是,分离了 $_ENV 和 $HTTP_ENV_VARS 数组,相关信息,请参阅安全的相关章节使用 Register Globals,这些单独的全局变量不是自动全局变量.
实例代码如下:
- <?php
- echo 'My username is ' .$_ENV["USER"] . '!';
- ?>
假设 "bjori" 运行此段脚本,以上例程的输出类似于:My username is bjori!
实例2代码如下:
- <?php
- if (isset($_ENV["HOSTNAME"]))
- $MachineName = $_ENV["HOSTNAME"];
- else if (isset($_ENV["COMPUTERNAME"]))
- $MachineName = $_ENV["COMPUTERNAME"];
- else $MachineName = "";
- ?>
运行环境导入到 PHP 的全局命名空间,很多是由支持 PHP 运行的 Shell 提供的,并且不同的系统很可能运行着不同种类的 Shell,所以不可能有一份确定的列表,请查看你的 Shell 文档来获取定义的环境变量列表.
其他环境变量包含了 CGI 变量,而不管 PHP 是以服务器模块还是 CGI 处理器的方式运行.
$HTTP_ENV_VARS 包含相同的信息,但它不是一个超全局变量,(注意 $HTTP_ENV_VARS 和 $_ENV 是不同的变量,PHP 处理它们的方式不同.