PHP:NULLish值检查

FtD*_*Xw6 2 php null

当检查超全局类似$_GET$_POST存在特定键的值时,是否有一种方法以更简洁的方式包含以下功能?

if (isset($_POST['foo']) && $_POST['foo'] !== '') {
    // ...
}
Run Code Online (Sandbox Code Playgroud)

isset()自身函数返回TRUE即使值是一个空字符串'',所以我不能使用.

使用just $_POST['foo'] !== ''将自己正常工作,但它会发出一个E_NOTICE未定义的索引,这是不可取的.

empty()函数返回TRUE的值"0",这是一个有效的价值,所以我不能使用的,无论是.

我错过了一些明显的东西,或者这真的是最好/唯一的方法吗?

Tad*_*eck 5

可能您正在寻找array_key_exists():

if (array_key_exists('foo', $_POST)){
    // will execute when $_POST['foo'] is set, even if to null, false, '' etc.
};
Run Code Online (Sandbox Code Playgroud)

如果你不想匹配空字符串(''),那么你的解决方案就足够了.上面的解决方案false仅在密钥不存在时提供给您.