14

我想设置一个环境变量,然后在 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()引发任何警告,只是什么也不返回。

我错过了什么?

4

2 回答 2

17

不要$export命令中使用,应该是:

export APP_ENV

您可以将其与作业结合起来:

export APP_ENV="development"

使用$,您实际上是在做:

export development
于 2013-08-16T08:27:59.027 回答
12

问题1 导出环境变量

您的导出不正确。

$ APP_ENV="development"
$ export APP_ENV

请注意,$导出语句中缺少 !:P

首先检查 getenv 以确保导出有效:

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

问题2:未定义的索引:

<?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”。

于 2013-08-16T08:28:49.793 回答