PHP中isset与array_key_exists的性能对比

前言:在开发中,之前判断数组中的键是否存在,我一直使用isset;今天看到有同事大量使用array_key_exists,闲来没事就测试了一下它们的性能。
$arr = ['id' => 3242, 'name' => 'test', 'age' => null];

$time1 = microtime(true);
for ($i = 0; $i < 100000000; $i++) {
$tmp = isset($arr['age']);
}

echo microtime(true) - $time1;

echo PHP_EOL;
$time2 = microtime(true);
for ($i = 0; $i < 100000000; $i++) {
$tmp1 = array_key_exists('age', $arr);
}

echo microtime(true) - $time2;

上面的代码运行结果为:
2.1061670780182
3.1671521663666

经测试:isset的效率要高于array_key_exists。


文章作者: Crazy Boy
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Crazy Boy !
赏

留言

想法、疑问或勘误,都可以写在这里。留言会公开显示。

正在准备留言区…

 上一篇
php中,this、self、static的区别 php中,this、self、static的区别
$this 指向当前对象实例,用 $this-> 访问实例成员,静态方法中不能使用。 self:: 按方法定义所在的类解析成员,并不是只能访问静态方法或属性。 static:: 使用后期静态绑定,按调用链中的被调用类解析成员;这里的 sta
2022-06-02
下一篇 
PHP中...的用法 PHP中...的用法
如果…在函数的定义中,则表示传入多个参数(个数不定)将合并成一个数组(索引数组) 如果…在调用函数的语句中,则表示传入的数组(索引数组)将拆分成多个参数
2022-06-02