我们通常习惯使用isset
来判断数组里是否存在指定的key
但是对于下面的情况,isset
并不能作出正确的判断
$first = ['key' => null];
$second = [null];
// 返回false
isset($first['key']);
// 返回false
isset($second[0]);
当数组键对应的值为null
时,isset
返回的是false
,而解决办法是使用array_key_exists
$first = ['key' => null];
$second = [null];
// 返回true
array_key_exists('key', $first);
// 返回true
array_key_exists(0, $second);
但是isset
处理的速度要远远高于array_key_exists
,所以使用场合需要根据具体环境来判断,更稳妥的办法是:
if (isset($first['key']) || array_key_exists('key', $first)) {
// key存在后的处理
}