为什么.env打印不出来

来源:2-12 环境变量的配置和使用

慕数据7248526

2018-05-03 14:31

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

写回答 关注

3回答

  • 零点夜晚
    2019-02-18 20:29:43

    老哥牛逼


  • 慕桂英2170621
    2018-05-22 08:07:26

    第一,要想让$_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方法才能读取。


  • 菜鸟Wenco
    2018-05-03 16:22:18

    第一步:$_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;


    冷月萧锋

    牛逼啊老哥

    2019-02-06 19:03:37

    共 1 条回复 >

快速入门ThinkPHP 5.0--基础篇

ThinkPHP5已发布多时,想了解ThinkPHP5的新特性吗?老司机带你马上出发~

58655 学习 · 495 问题

查看课程

相似问题