PHP中的$_ENV何时会为空,如何设置

一、了解PHP $_ENV

1 PHP中的$_ENV是一个包含服务器端环境变量的数组。它是PHP中个一个超级全局变量,我们可以在PHP程序中的任何地方直接访问它。

2 $_ENV只是被动的接受服务器端的环境变量并把他们转换为数组元素。

3 由于$_ENV变量去接与服务器的环境变量,从不同的服务器上获取的$_ENV变量打印出的结果可能是完全不同的。所以无法像$_SERVER那样列出完整的列表。

4 var_dump($_ENV)结果:


array (size=37) 
'ALLUSERSPROFILE' => string'C:\ProgramData' (length=14) 
'APPDATA' => string'C:\windows\system32\config\systemprofile\AppData\Roaming' (length=56) 
'CommonProgramFiles' => string'C:\Program Files\Common Files' (length=29) 
'CommonProgramFiles(x86)' => string'C:\Program Files (x86)\Common Files' (length=35)
'CommonProgramW6432' => string'C:\Program Files\Common Files' (length=29) 
'COMPUTERNAME' => string'LENOVO-PC' (length=9) 
'ComSpec' => string'C:\windows\system32\cmd.exe' (length=27) 
'configsetroot' => string'C:\windows\ConfigSetRoot' (length=24) 
'easyplussdk' => string'"C:\Program Files (x86)\Common Files\lenovo\easyplussdk\bin"' (length=60) 
'FP_NO_HOST_CHECK' => string'NO' (length=2) 'LOCALAPPDATA' => string'C:\windows\system32\config\systemprofile\AppData\Local' (length=54) 
'MOZ_PLUGIN_PATH' => string'C:\Program Files (x86)\Foxit PhantomPDF\plugins\' (length=48) 
'NUMBER_OF_PROCESSORS' => string'4' (length=1) 
'OS' => string'Windows_NT' (length=10) 
'Path' => string'C:\Program Files (x86)\Intel\iCLS Client\;C:\Program Files\Intel\iCLS Client\;C:\windows\system32;C:\windows;C:\windows\System32\Wbem;C:\windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files (x86)\ATI Technologies\ATI.ACE\Core-Static;C:'... (length=620) 
'PATHEXT' => string'.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC' (length=53) 
'PROCESSOR_ARCHITECTURE' => string'AMD64' (length=5) 
'PROCESSOR_IDENTIFIER' => string'Intel64 Family 6 Model 69 Stepping 1, GenuineIntel' (length=50) 
'PROCESSOR_LEVEL' => string'6' (length=1) 
'PROCESSOR_REVISION' => string'4501' (length=4) 
'ProgramData' => string'C:\ProgramData' (length=14) 
'ProgramFiles' => string'C:\Program Files' (length=16) 
'ProgramFiles(x86)' => string'C:\Program Files (x86)' (length=22) 
'ProgramW6432' => string'C:\Program Files' (length=16) 
'PSModulePath' => string'C:\windows\system32\WindowsPowerShell\v1.0\Modules\' (length=51) 
'PUBLIC' => string'C:\Users\Public' (length=15) 
'READYAPPS' => string'C:\ProgramData\Lenovo\ReadyApps' (length=31) 
'SystemDrive' => string'C:' (length=2) 
'SystemRoot' => string'C:\windows' (length=10) 
'TEMP' => string'C:\windows\TEMP' (length=15) 
'TMP' => string'C:\windows\TEMP' (length=15) 
'TVT' => string'C:\Program Files (x86)\Lenovo' (length=29) 
'USERDOMAIN' => string'WORKGROUP' (length=9) 
'USERNAME' => string'LENOVO-PC$' (length=10) 
'USERPROFILE' => string'C:\windows\system32\config\systemprofile' (length=40) 
'windir' => string'C:\windows' (length=10) 
'AP_PARENT_PID' => string'8204' (length=4)


二、PHP $_ENV的设置

PHP的配置文件php.ini的配置项为: variables_order = "GPSC"

想要让$_ENV的值不为空,那么variables_order的值应该加上一个大写字母"E", variable_order = "EGPSC"

EGPSC表示: Enviroment, GET, POST, Cookie, Server

如果variable_order的配置总缺少E, 则PHP无法接受环境变量,那么$_ENV也就为空了


三、注意事项

由于开启了$_ENV,会导致一些性能损失,按php官方的说法是,在生成环境中不推荐使用。他们更推荐使用getenv(string $varname)函数来获取Enviroment中的值,二这点需要在编辑时就注意。

如果编程时用管理$_ENV, 而variables_order中又没有欸只为variables_order = "EGPCS",则程序运行时可能会报错。


转载于:https://my.oschina.net/syc2013/blog/396854

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值