PHP中isset与array_key_exists的区别实例分析

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了PHP中isset与array_key_exists的区别实例分析脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

本文实例讲述了PHP中isset与array_key_exists的区别。分享给大家供大家参考。具体分析如下:

1.对于数组值的判断不同,对于值为null或''或false,isset返回false,array_key_exists返回true;

2. 执行效率不同,isset是内建运算符,array_key_exists是PHP内置函数,isset要快一些。请参考:PHP 函数实现原理性能分析

3.当用isset访问一个不存在索引数组值时,不会引起一个E_NOTICE的PHP错误消息;

4.array_key_exists 会调用get_defined_VARs判断数组变量是否存在,isset不用

测试代码

<PRe class="brush:PHp;"> 'dd','bb'=>'','cc'=>null,'dd'=>false); echo "isset aa is ";var_dump(isset($test_arr['aa']));echo "\n"; echo "isset bb is ";var_dump(isset($test_arr['bb']));echo "\n"; echo "isset cc is ";var_dump(isset($test_arr['cc']));echo "\n"; echo "isset dd is ";var_dump(isset($test_arr['cc']));echo "\n"; echo "isset none is ";var_dump(isset($test_arr['none']));echo "\n"; echo "key_exist aa is ";var_dump(array_key_exists('aa',$test_arr));echo "\n"; echo "key_exist bb is ";var_dump(array_key_exists('bb',$test_arr));echo "\n"; echo "key_exist cc is ";var_dump(array_key_exists('cc',$test_arr));echo "\n"; echo "key_exist dd is ";var_dump(array_key_exists('dd',$test_arr));echo "\n"; echo "key_exist none is ";var_dump(array_key_exists('none',$test_arr));echo "\n"; $time_start = microtime_float(); for($i=0;$i<100;$i++){ isset($test_arr['aa']);="" }="" $time_end="microtime_float();" $time="$time_end" -="" $time_start;="" echo="" "isset="" 100="" is="" $time\n";="" for($i=""><10000;$i++){ isset($test_arr['aa']);="" }="" $time_end="microtime_float();" $time="$time_end" -="" $time_start;="" echo="" "isset="" 10000="" is="" $time\n";="" for($i=""><1000000;$i++){ isset($test_arr['aa']);="" }="" $time_end="microtime_float();" $time="$time_end" -="" $time_start;="" echo="" "isset="" 1000000="" is="" $time\n";="" ++++++++++++++++++++++++++++++="" $time_start="microtime_float();" for($i=""><100;$i++){ array_key_exists('aa',$test_arr);="" }="" $time_end="microtime_float();" $time="$time_end" -="" $time_start;="" echo="" "array_key_exists="" 100="" is="" $time\n";="" for($i=""><10000;$i++){ array_key_exists('aa',$test_arr);="" }="" $time_end="microtime_float();" $time="$time_end" -="" $time_start;="" echo="" "array_key_exists="" 10000="" is="" $time\n";="" for($i=""><1000000;$i++){ array_key_exists('aa',$test_arr);="" }="" $time_end="microtime_float();" $time="$time_end" -="" $time_start;="" echo="" "array_key_exists="" 1000000="" is="" $time\n";="">

脚本宝典总结

以上是脚本宝典为你收集整理的PHP中isset与array_key_exists的区别实例分析全部内容,希望文章能够帮你解决PHP中isset与array_key_exists的区别实例分析所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。