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


Posted in PHP onJune 02, 2015

本文实例讲述了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不用;

测试代码:

<?php
function 
microtime_float()
{
  list($usec, $sec) = explode(" ", microtime());
  return ((float)$usec + (float)$sec);
}
$test_arr['aa']='dd';
$test_arr['bb']='';
$test_arr['cc']=NULL;
$test_arr['dd']=false;
$test_arr= array('aa'=>'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=0;$i<10000;$i++){
isset($test_arr['aa']);
}
$time_end = microtime_float();
$time = $time_end - $time_start;
echo "isset 10000 is $time\n";
for($i=0;$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=0;$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=0;$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=0;$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程序设计有所帮助。

PHP 相关文章推荐
上传多个文件的PHP脚本
Nov 26 PHP
php中模拟POST传递数据的两种方法分享
Sep 16 PHP
zf框架的zend_cache缓存使用方法(zend框架)
Mar 14 PHP
Discuz批量替换帖子内容的方法(使用SQL更新数据库)
Jun 23 PHP
PHP安全上传图片的方法
Mar 21 PHP
php跨服务器访问方法小结
May 12 PHP
yii2框架中使用下拉菜单的自动搜索yii-widget-select2实例分析
Jan 09 PHP
基于PHP实现栈数据结构和括号匹配算法示例
Aug 10 PHP
浅谈PHP接入(第三方登录)QQ登录 OAuth2.0 过程中遇到的坑
Oct 13 PHP
thinkPHP5框架实现基于ajax的分页功能示例
Jun 12 PHP
php创建类并调用的实例方法
Sep 25 PHP
php文件上传原理与实现方法详解
Dec 20 PHP
php使用ob_flush不能每隔一秒输出原理分析
Jun 02 #PHP
php获取指定范围内最接近数的方法
Jun 02 #PHP
PHP使用递归方式列出当前目录下所有文件的方法
Jun 02 #PHP
php使用socket post数据到其它web服务器的方法
Jun 02 #PHP
php自动给网址加上链接的方法
Jun 02 #PHP
php将字符串随机分割成不同长度数组的方法
Jun 01 #PHP
php正则preg_replace_callback函数用法实例
Jun 01 #PHP
You might like
PHP 和 HTML
2006/10/09 PHP
新版PHP极大的增强功能和性能
2006/10/09 PHP
在WordPress的文章编辑器中设置默认内容的方法
2015/12/29 PHP
新发现一个骗链接的方法(js读取cookies)
2012/01/11 Javascript
JavaScript 模式之工厂模式(Factory)应用介绍
2012/11/15 Javascript
jquery中load方法的用法及注意事项说明
2014/02/22 Javascript
jquery ajax应用中iframe自适应高度问题解决方法
2014/04/12 Javascript
jQuery遍历之next()、nextAll()方法使用实例
2014/11/08 Javascript
js实现仿百度瀑布流的方法
2015/02/05 Javascript
jQuery实现元素拖拽并cookie保存顺序的方法
2016/02/20 Javascript
JQuery手速测试小游戏实现思路详解
2016/09/20 Javascript
基于react组件之间的参数传递(详解)
2017/09/05 Javascript
判断“命令按钮”是否被鼠标单击详解
2019/07/31 Javascript
原生js实现日历效果
2020/03/02 Javascript
JS变量提升原理与用法实例浅析
2020/05/22 Javascript
JavaScript中ES6规范中let和const的用法和区别
2020/08/06 Javascript
vue自定义树状结构图的实现方法
2020/10/18 Javascript
[37:29]完美世界DOTA2联赛PWL S2 LBZS vs Forest 第二场 11.19
2020/11/19 DOTA
Python 错误和异常小结
2013/10/09 Python
利用Python生成文件md5校验值函数的方法
2017/01/10 Python
查找python项目依赖并生成requirements.txt的方法
2018/07/10 Python
python 实现语音聊天机器人的示例代码
2018/12/02 Python
python脚本实现mp4中的音频提取并保存在原目录
2020/02/27 Python
Django使用list对单个或者多个字段求values值实例
2020/03/31 Python
如何让PyQt5中QWebEngineView与JavaScript交互
2020/10/21 Python
python+opencv实现车道线检测
2021/02/19 Python
tensorflow2.0教程之Keras快速入门
2021/02/20 Python
css3 border-image使用说明
2010/06/23 HTML / CSS
伦敦剧院门票:London Theatre Direct
2018/11/21 全球购物
恒华伟业笔试面试题
2015/02/26 面试题
办公室文秘自我评价
2013/09/21 职场文书
市场营销方案范文
2014/03/11 职场文书
开工仪式主持词
2014/03/20 职场文书
优秀的导游求职信范文
2014/04/06 职场文书
经济国贸专业求职信
2014/06/18 职场文书
2014年作风建设剖析材料
2014/10/23 职场文书