引自:深入理解PHP之isset和array_key_exists对比
区别
| isset | 语言构造器 | 检测变量是否已设置并且非 NULL | http://php.net/manual/zh/function.isset.php |
|---|---|---|---|
| array_key_exists | 函数 | 检查数组里是否有指定的键名或索引 | http://php.net/manual/zh/function.array-key-exists.php |
isset()对于数组中为 NULL 的值不会返回 TRUE,而array_key_exists()会array_key_exists()仅仅搜索第一维的键。 多维数组里嵌套的键不会被搜索到要检查对象是否有某个属性,应该去用
property_exists()总结
isset效率高于array_key_exists,PHP7之后有30%左右的提升,php5.6有将近70%的提升。isset是语法结构,array_key_exists是函数,调用开销要小。isset通过Z_TYPE_P获取变量类型,然后再进行判断实现的;array_key_exists则是通过hash查找来实现的。- 对于数组,
isset的性能要高于array_key_exists所以,如果数组比较大,我们应该用如下方法保证性能和准确性isset or array_key_exists。
