PHP 中数组函数 isset 效率比 array_key_exists 更高

PHP 中数组函数 isset 效率比 array_key_exists 更高

isset 和 array_key_exists 函数都可以用来测试数组中变量是否存在:

if(isset($array[$i])){ echo "存在"; }
if(array_key_exists($i, $array)) { echo "存在"; }

那么这两个函数有什么区别呢?经过测试:

  • 当数组个数为10时,两者差异就体现出来了,isset 速度要快近10倍,但不是很明显,而且对于变量是否存在,两者之间的差异没有太大,当变量存在时运行更快,但是这种趋势在是非常微弱的。
  • 使用 array_key_exists 随着循环的次数增加,程序运行的时间增加量是成几何级数增加的,当一个数组元素个数超过1000时运行速度就非常慢了。

所以 isset 和 array_key_exists 在对判断一个数组函数中某个元素是否存在,isset 速度要更快,而且这种速度差异是非常大的。

由于 isset 属于 php 中的语言结构,而 array_key_exists 是函数,所以 isset 更快。并且isset 在其他语言中也存在,更具可读性。

另外对于变量值的判断,当变量为NULL时,isset 返回的结果是 false,而 array_key_exists只判断变量是否存在。所以如果判断一个数组中的某个元素,并且判断其是否是否为真,应该用isset






转载于:https://www.cnblogs.com/lookphp/p/5834278.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值