PHP中的$_ENV是一个包含服务器端环境变量的数组。它是PHP中一个超级全局变量,咱们能够在PHP 程序的任何地方直接访问它。php
$_ENV只是被动的接受服务器端的环境变量并把它们转换为数组元素,你能够尝试直接输出它。编程
当你想看看一个变量中究竟有什么东西在里面时,我所知道的方式有三种:数组
var_dump($_ENV);
print_r($_ENV);
foreach($_ENV as $key=>$val){echo $key.'--------'.$val.'<br>';}
这三种方式中,第一种我以为最方便并且输出的内容格式清晰。服务器
因为$_ENV
变量是取决于服务器的环境变量的,从不一样的服务器上获取的$_ENV
变量打印出的结果多是彻底不一样的。因此没法像$_SERVER
那样列出完整的列表。如下是$_ENV 数组包含的比较通用的元素:函数
有时候,$_ENV
会为空,其缘由一般是php的配置文件php.ini的配置项为:variables_order = "GPCS"
。要想让$_ENV
的值不为空,那么variables_order
的值应该加上一个大写字母“E”,即:variables_order = "EGPCS"
。性能
上述配置表示了PHP接受的外部变量来源及顺序,EGPCS是Environment、Get、Post、Cookies、Server的缩写。若是variables_order 的配置中缺乏E ,则PHP 没法接受环境变量,那么$_ENV 也就为空了。code
因为开启$_ENV
,即variables_order = "EGPCS"
会致使一些性能损失,按php官方的说法是,在生产环境中,不推荐使用。他们更推荐使用getenv (string $varname)
函数来获取Environment中的值,而这点须要在编程时就注意到。若是编程时用了$_ENV
而variables_order
中又没有配置为variables_order = "EGPCS"
,则程序运行时可能会报错。get