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);