PHP中的环境变量

php

浏览数:1,133

2019-1-7

PHP中的环境变量

用于设置php系统的当前运行环境,可以用来存储一些环境设置。
环境变量仅存活于当前请求期间,在请求结束时环境会恢复到初始状态。

一般框架都会有 .env 环境变量文件,其设置规则为:
key = value
...
key = value

1、如果需要添加注释,可以使用#
2、如果需要嵌套变量的话,也可以直接在 .env 中写, 借用官方的例子:
    BASE_DIR  = "/var/webroot/project-root"
    CACHE_DIR = "${BASE_DIR}/cache"
    TMP_DIR   = "${BASE_DIR}/tmp"

一般项目分本地环境,线上测试环境,线上正式环境;不同有不同的环境有不同的域名和数据库等配置。
因此这个 .env 文件是不会添加到版本管理库的。
.env 文件需要程序来添加到环境变量中去。

方法一:

// 加载环境变量配置文件
defined('ENV_PREFIX') or define('ENV_PREFIX', 'PHP_'); // 环境变量的配置前缀

if (is_file(ROOT_PATH . '.env')) {
    $env = parse_ini_file(ROOT_PATH . '.env', true);

    foreach ($env as $key => $val) {
        $name = ENV_PREFIX . strtoupper($key);

        if (is_array($val)) {
            foreach ($val as $k => $v) {
                $item = $name . '_' . strtoupper($k);
                putenv("$item=$v");
            }
        } else {
            putenv("$name=$val");
        }
    }
}

putenv方法设置的,只能用getenv方法拿到。

方法二:
$_ENV['aaa'] = 'bbb';
var_dump($_ENV['aaa']);查看全部环境变量:
phpinfo(INFO_ENVIRONMENT);