我知道我可以使用设置环境变量
putenv("ENV_FOO=SOMETHING");
并通过获取值
getenv("ENV_FOO");
如果未设置变量,getenv("ENV_FOO")
将返回false
。
我有一个功能集,可以通过环境变量设置,我想在设置或不设置变量时对行为进行单元测试。
然而,一旦通过在bash中的我的开发机器上导出变量
export ENV_FOO=something`
它破坏了我的单元测试,因为我无法使用php为测试范围取消设置环境变量。
我尝试了putenv("ENV_FOO=");
,但它将以空字符串""
返回,而不是在当前shell会话的未设置环境变量中返回。
有没有一种方法可以取消设置当前shell会话的环境变量,或者我必须更改测试变量是否存在的方式?
从putenv
文档页面评论中尝试
<?php
putenv('MYVAR='); // set MYVAR to an empty value. It is in the environment
putenv('MYVAR'); // unset MYVAR. It is removed from the environment
?>