PHP的isset处理数组时需要注意值为null的情况

我们通常习惯使用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存在后的处理
}

你可能感兴趣的:(PHP的isset处理数组时需要注意值为null的情况)