如何检查是否在PHP中设置了环境变量?

wec*_*sam 9 php environment-variables isset

在PHP中,如何测试是否设置了环境变量?我想这样的行为:

// Assuming MYVAR isn't defined yet.
isset(MYVAR); // returns false
putenv("MYVAR=foobar");
isset(MYVAR); // returns true
Run Code Online (Sandbox Code Playgroud)

wec*_*sam 25

getenv()false如果未设置环境变量,则返回.以下代码将起作用:

// Assuming MYVAR isn't defined yet.
getenv("MYVAR") !== false; // returns false
putenv("MYVAR=foobar");
getenv("MYVAR") !== false; // returns true
Run Code Online (Sandbox Code Playgroud)

一定要使用严格比较运算符(!==),因为getenv()通常返回一个可以作为布尔值转换的字符串.

  • 我不知道为什么,但是当未定义 MYVAR 时,我的 PHP (7.1.32) 返回一个空字符串...我尝试了`key_exists('MYVAR', getenv())`,但它也不起作用,所以我最终检查了 `!empty(getenv('MYVAR'))`... (2认同)

Raj*_*jan 5

你可以这样检查

if($ip = getenv('REMOTE_ADDR'))
echo $ip; 
Run Code Online (Sandbox Code Playgroud)

getenv () 返回环境变量的值。

  • 我自己发现,如果未设置环境变量,`getenv()` 会返回 `false`。我看到这就是您的代码试图说明的内容。但是,您的代码存在几个问题。首先,我们尽量避免在 `if` 条件语句中使用 `=` 赋值运算符,因为我们几乎总是指的是 `==`。其次,环境变量的值可能是转换为“false”的空字符串,因此我们需要使用严格的比较运算符。 (3认同)