将环境变量传递到php命令行脚本

将环境变量传递到php命令行脚本,php,environment-variables,command-line-interface,Php,Environment Variables,Command Line Interface,我想设置一个环境变量,然后在PHP中访问它,但找不到如何实现 在(linux)shell中,我运行: $ APP_ENV="development" $ export $APP_ENV 然后运行一个简单的测试脚本testenv.php: <?php print $_ENV["APP_ENV"]; print getenv("APP_ENV"); 这将不打印任何内容并抛出通知: Notice: Undefined index: APP_ENV in /xxxx/envtest.php o

我想设置一个环境变量,然后在PHP中访问它,但找不到如何实现

在(linux)shell中,我运行:

$ APP_ENV="development"
$ export $APP_ENV
然后运行一个简单的测试脚本testenv.php:

<?php
print $_ENV["APP_ENV"];
print getenv("APP_ENV");
这将不打印任何内容并抛出通知:

Notice: Undefined index: APP_ENV in /xxxx/envtest.php on line 2
请注意,因为在环境变量中找不到APP_ENV,
getenv()
不会抛出任何警告,但不会返回任何内容


我缺少什么?

不要在
导出
命令中使用
$
,它应该是:

export APP_ENV
您可以将其与分配结合使用:

export APP_ENV="development"
使用
$
,您可以有效地执行以下操作:

export development
问题1导出环境变量 您的导出不正确

$ APP_ENV="development"
$ export APP_ENV
请注意,export语句中缺少
$
:P

首先检查getenv以确保导出工作正常:

<?php
  echo getenv ("APP_ENV");
?>

问题2:此上的未定义索引:

如果您从
getenv
获得了正确的值,但没有从superglobal
$\u ENV
获得正确的值,则可能需要检查ini文件

引用php.org:

如果$\u ENV数组神秘地为空,但仍然可以看到 变量调用getenv()或在phpinfo()中调用时,请检查 伊尼 设置以确保字符串中包含“E”


我认为OP包含“$”只是为了强调这些行是shell命令。@cuewizchris我不是说导出之前的
$
,我说的是后面的那个。@cuewizchris实际上没有Barmar是正确的导出$APP_ENV前面不应该有$APP_ENV我的问题是
变量顺序
不包括E,我想我自己也不会发现。太棒了!
<?php
  echo getenv ("APP_ENV");
?>
<?php
   echo $_ENV["APP_ENV"];
?>