【问题标题】:How to unset an environment variable using php?如何使用php取消设置环境变量?
【发布时间】:2015-12-03 11:54:29
【问题描述】:

我知道我可以使用设置环境变量

putenv("ENV_FOO=SOMETHING");

并通过以下方式获取值:

getenv("ENV_FOO");

如果未设置变量,getenv("ENV_FOO") 将返回 false。

我有一个可以通过环境变量设置的功能集,我想对设置或未设置变量时的行为进行单元测试。

然而,一旦在我的开发机器上通过 bash 导出变量

export ENV_FOO=something`

它破坏了我的单元测试,因为我无法在测试范围内使用 php 取消设置环境变量。

我尝试了putenv("ENV_FOO=");,但这将返回一个空字符串"",而不是当前shell会话的未设置环境变量。

有没有办法为当前 shell 会话取消设置环境变量,或者我是否必须更改测试变量是否存在的方式?

【问题讨论】:

    标签: php bash environment-variables hhvm


    【解决方案1】:

    从putenv docpage cmets 试试这个

    <?php
    putenv('MYVAR='); // set MYVAR to an empty value.  It is in the environment
    putenv('MYVAR'); // unset MYVAR.  It is removed from the environment
    ?>
    

    【讨论】:

    • 它对我不起作用。然后我再次意识到我正在使用 hhvm,它有一个无法正常工作的错误:github.com/facebook/hhvm/issues/2533
    • 很抱歉听到这个消息 :( 如果您没有设置 env.php 本身的环境变量,您可以尝试shell_exec("unset FOO");,可能会起作用
    • 我在 PHP 7.0 的 docker 容器中尝试了这种方法,但没有成功,构建容器后仍然设置了 env var 值。
    猜你喜欢
    • 2015-11-16
    • 2018-11-16
    • 2017-12-22
    • 2014-02-26
    • 2011-02-13
    • 1970-01-01
    • 2018-01-30
    • 2014-05-02
    相关资源
    最近更新 更多