如果有一个数组,
$arr = array(‘one‘ => null, ‘two‘ => 1, ‘three‘ => 2);
问题, 如果要判断数组中‘one‘这个键是否存在..如果单纯用 isset 判断会出现问题
if(isset($arr[‘one‘])){
echo ‘存在‘;
}esle{
echo ‘不存在‘;
}
输出 : 不存在
isset对于判断null这种值, 会认为没有在内存中开辟空间, 相当于销毁变量.
所以希望有效率, 并且能准确判断键是否被创建, 则应该这样写 :
if(isset($arr[‘one‘]) || array_key_exists($arr[‘one‘])){
echo ‘存在‘;
}else{
echo ‘不存在‘;
}
这样, 左边的isset如果为true后就会直接判断为存在, 不执行array_key_exists函数, 效率得以提高.
时间: 2024-11-10 01:31:08