PHP超全局变量$_ENV详解,及$_ENV为空的可能原因

PHP中的$_ENV存储了一些系统的环境变量,因为牵扯到实际的操作系统,所以不可能给出$_ENV的完整列表。

$_ENV为空的可能原因: 

你的php.inivariables_order值为"GPCS",也就是说系统在定义PHP预定义变量时的顺序是 GET,POST,COOKIES,SERVER,没有定义Environment(E),你可以修改php.ini文件的 variables_order值为你想要的顺序,如:"EGPCS"。这时,$_ENV的值就可以取得了。

EGPCS是Environment、Get、Post、Cookies、Server的缩写,这是PHP中外部变量来源的全部范围,可以用print_r($_ENV)来打印这个变量,查看他的数据。

注意,生产环境下,$_ENV都是空数组,主要是为了安全起见,不让它获取操作系统信息!

$_ENV,作为PHP的9个超级变量($GLOBALS,$_SERVER,$_GET,$_POST,$_COOKIE,$_FILES,$_ENV,$_REQUEST,_SESSION)中的一个, 不用它真是有点浪费,所以说你会看到DiscuzX系统就“重用”了这个 超全局变量。

posted @ 2016-07-14 12:01  52php  阅读(6444)  评论(0编辑  收藏  举报