如何使用php取消环境变量?

k0p*_*kus 6 php bash environment-variables hhvm

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

putenv("ENV_FOO=SOMETHING");
Run Code Online (Sandbox Code Playgroud)

并通过以下方式获取价值:

getenv("ENV_FOO");
Run Code Online (Sandbox Code Playgroud)

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

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

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

export ENV_FOO=something`
Run Code Online (Sandbox Code Playgroud)

它打破了我的单元测试,因为我不能使用php取消环境变量来测试范围.

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

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

Ale*_*rei 17

putenvdocpage评论中试试这个

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