我知道我可以使用
设置环境变量putenv("ENV_FOO=SOMETHING");
并通过以下方式获取值:
getenv("ENV_FOO");
如果未设置变量,getenv("ENV_FOO")
将返回false
。
我有一个功能集可能通过环境变量设置,我想在设置或未设置变量时对行为进行单元测试。
然而,一旦通过
将我的开发机器上的变量导出到bash中export ENV_FOO=something`
它打破了我的单元测试,因为我无法使用php取消环境变量来测试范围。
我尝试putenv("ENV_FOO=");
但这将返回空字符串""
,而不是当前shell会话的未设置环境变量。
有没有办法为当前shell会话取消设置环境变量,还是我必须改变测试变量存在的方式?
答案 0 :(得分:17)
从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
?>