为了账号安全,请及时绑定邮箱和手机立即绑定

为什么.env打印不出来

为什么打印 $_ENV 和 $_SERVER 的结果一样,而且打印$_ENV也没显示.env文件的配置内容

正在回答

4 回答

老哥牛逼


0 回复 有任何疑惑可以回复我~

第一,要想让$_ENV的值不为空,php.ini配置中设置variables_order = "EGPCS"或开启。

第二,$_ENV本身就不会显示.env配置文件中配置的环境变量信息,$_ENV只会显示单独配置的环境变量信息,而要想得到.env配置文件中的环境变量参数配置信息,只能通过Env::get()获得

可以直接在配置文件中使用环境变量进行本地环境和服务器的自动配置,例如:

return [   
     'hostname'  =>  Env::get('hostname','127.0.0.1'),
];

环境变量中设置的APP_DEBUG和APP_TRACE参数会自动生效(优先于应用的配置文件),其它参数则必须通过Env::get方法才能读取。


0 回复 有任何疑惑可以回复我~

第一步:$_ENV会为空,其原因通常是php的配置文件php.ini的配置项为:variables_order = "GPCS"。
要想让$_ENV的值不为空,那么variables_order的值应该加上一个大写字母“E”,即:variables_order = "EGPCS"。

第二步:

Env不显示的问题,需要在base.php中 putenv的同时,将数据也写入$_ENV,就可以解决了

打开thinkphp目录下的base.php文件修改。54行左右 
putenv("$name=$val");
//写入环境变量,才能在打印$_ENV文件的时候显示出来配置的环境变量
$_ENV[$name]=$val;


13 回复 有任何疑惑可以回复我~
#1

冷月萧锋

牛逼啊老哥
2019-02-06 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么.env打印不出来

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信