使用 isset 判断多个变量是否已设置主要用在请求参数的判断上,但这个判断正在被框架的 Request 类中的验证规则所取代。

对于其他的方法体内的多个变量,一般会用 isset($var1) && isset($var2) ... 来实现。今天遇到一个需要判断 4 个参数是否存在的情况,找到了函数说明:

(PHP 4, PHP 5, PHP 7, PHP 8)

isset — 检测变量是否已设置并且非 null

如果一次传入多个参数,那么 isset() 只有在全部参数都以被设置时返回 true 计算过程从左至右,中途遇到没有设置的变量时就会立即停止。

所以可以这样去判断 isset($var1, $var2, ...)

另外找到一个方案,通过数组 array_diff 与 array_keys 实现判断:

$check_array = array('key1', 'key2', 'key3');
if (!array_diff($check_array, array_keys($_POST)))
    echo 'all exists';