PUTENV会影响其他脚本中的变量吗?


does PUTENV affect the variable in other scripts

如果我使用putenv设置变量,其他脚本会受到影响吗?

我的理解是,这是脚本特定的,是正确的吗?如果服务器上同时运行两个不同的脚本,会影响另一个脚本吗?

是的,env变量是特定于程序/脚本的每个特定调用的。就像每个程序都可以有自己的工作目录,自己的stdin/stdout/stderr等…一个脚本的环境不能影响另一个脚本的环境,除非它们是父/子关系

否,其他脚本不受影响。

环境变量只在当前请求期间存在。

下面的示例代码可以使用PHP CLI实用工具运行。
<?php
putenv("FOO=bar");
print("PHP says FOO=" . getenv("FOO") . "'n");
?>

下面是程序的输出和生成的环境。

$ php putenv.php; echo echo says FOO=$FOO
PHP says FOO=bar
echo says FOO=