我想设置一个环境变量,然后在PHP中访问它,但找不到如何操作。
在(linux)shell中,我运行:
$ APP_ENV="development"
$ export $APP_ENV
然后我运行一个简单的测试脚本testenv.php:
<?php
print $_ENV["APP_ENV"];
print getenv("APP_ENV");
从设置该变量的同一个shell:
$ php testenv.php
这没有任何打印并发出通知:
Notice: Undefined index: APP_ENV in /xxxx/envtest.php on line 2
注意事项是有道理的,因为在环境变量中根本找不到APP_ENV,getenv()
不会发出警告但只返回任何内容。
我错过了什么?
答案 0 :(得分:16)
请勿在{{1}}命令中使用$
,它应该是:
export
您可以将其与作业相结合:
export APP_ENV
使用export APP_ENV="development"
,您实际上在做:
$
答案 1 :(得分:8)
您的导出不正确。
$ APP_ENV="development"
$ export APP_ENV
请注意,导出语句中缺少$
! :P
首先检查getenv以确保导出有效:
<?php
echo getenv ("APP_ENV");
?>
<?php
echo $_ENV["APP_ENV"];
?>
如果您从getenv
获得了正确的值,而不是超级全局$_ENV
,那么您可能需要检查您的ini文件。
引用php.org:
如果你的$ _ENV数组是神秘的空,但你还是看到了 调用getenv()或phpinfo()时的变量,检查你的 http://us.php.net/manual/en/ini.core.php#ini.variables-order ini 设置以确保它在字符串中包含“E”。