ber*_*kes 14 php environment-variables command-line-interface
我想设置一个环境变量,然后在PHP中访问它,但无法找到如何执行此操作.
在(linux)shell中,我运行:
$ APP_ENV="development"
$ export $APP_ENV
Run Code Online (Sandbox Code Playgroud)
然后我运行一个简单的测试脚本testenv.php:
<?php
print $_ENV["APP_ENV"];
print getenv("APP_ENV");
Run Code Online (Sandbox Code Playgroud)
从设置该变量的同一个shell:
$ php testenv.php
Run Code Online (Sandbox Code Playgroud)
这没有打印并发出通知:
Notice: Undefined index: APP_ENV in /xxxx/envtest.php on line 2
Run Code Online (Sandbox Code Playgroud)
注意事项是有道理的,因为在环境变量中根本找不到APP_ENV,不会getenv()
抛出任何警告但只返回任何内容.
我错过了什么?
Bar*_*mar 17
不要$
在export
命令中使用,它应该是:
export APP_ENV
Run Code Online (Sandbox Code Playgroud)
您可以将其与作业相结合:
export APP_ENV="development"
Run Code Online (Sandbox Code Playgroud)
有了$
,你有效地做了:
export development
Run Code Online (Sandbox Code Playgroud)
Ahm*_*sud 11
您的导出不正确.
$ APP_ENV="development"
$ export APP_ENV
Run Code Online (Sandbox Code Playgroud)
请注意,$
导出语句中缺少该内容!:P
首先检查getenv以确保导出有效:
<?php
echo getenv ("APP_ENV");
?>
Run Code Online (Sandbox Code Playgroud)
<?php
echo $_ENV["APP_ENV"];
?>
Run Code Online (Sandbox Code Playgroud)
如果您从getenv
超级全局获得适当的值,$_ENV
那么您可能必须检查您的ini文件.
引用php.org:
如果$ _ENV数组神秘地为空,但在调用getenv()或phpinfo()时仍然看到变量,请检查 http://us.php.net/manual/en/ini.core.php#ini .variables-order ini设置以确保它在字符串中包含"E".