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运行环境配置与开发环境的配置(图文教程)
Jun 04 PHP
PHP取整函数:ceil,floor,round,intval的区别详细解析
Aug 31 PHP
php计算函数执行时间的方法
Mar 20 PHP
PHP中foreach()用法汇总
Jul 02 PHP
PHP的文件操作与算法实现的面试题示例
Aug 10 PHP
Zend Framework教程之请求对象的封装Zend_Controller_Request实例详解
Mar 07 PHP
PHP的Yii框架中View视图的使用进阶
Mar 29 PHP
CI框架中数据库操作函数$this-&gt;db-&gt;where()相关用法总结
May 17 PHP
header与缓冲区之间的深层次分析
Jul 30 PHP
Zend Framework数据库操作方法实例总结
Dec 11 PHP
Yii 2.0在Grid中格式化时间方法示例
Jun 06 PHP
Laravel中为什么不使用blpop取队列详析
Aug 01 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查看请求头信息获取远程图片大小的方法分享
2013/12/25 PHP
php实现水仙花数的4个示例分享
2014/04/08 PHP
Javascript MD4
2006/12/20 Javascript
JavaScript中的console.group()函数详细介绍
2014/12/29 Javascript
Jquery 实现图片轮换
2015/01/28 Javascript
跟我学习javascript的for循环和for...in循环
2015/11/18 Javascript
JQuery实现动态操作表格
2017/01/11 Javascript
canvas红包照片实例分享
2017/02/28 Javascript
JS仿Base.js实现的继承示例
2017/04/07 Javascript
vue项目base64字符串转图片的实现代码
2018/07/13 Javascript
vue中的自定义分页插件组件的示例
2018/08/18 Javascript
node实现生成带参数的小程序二维码并保存到本地功能示例
2018/12/05 Javascript
uin-app+mockjs实现本地数据模拟
2020/08/26 Javascript
vue $router和$route的区别详解
2020/12/02 Vue.js
[46:37]LGD vs TNC 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
跟老齐学Python之??碌某?? target=
2014/09/12 Python
python中base64加密解密方法实例分析
2015/05/16 Python
python实现图片变亮或者变暗的方法
2015/06/01 Python
Python实现文件复制删除
2016/04/19 Python
python中如何使用朴素贝叶斯算法
2017/04/06 Python
在Python运行时动态查看进程内部信息的方法
2019/02/22 Python
Python3实现计算两个数组的交集算法示例
2019/04/03 Python
详解Python time库的使用
2019/10/10 Python
浅析PEP572: 海象运算符
2019/10/15 Python
基于OpenCV的路面质量检测的实现
2020/11/04 Python
罗马尼亚在线杂货店:Pilulka.ro
2019/09/28 全球购物
校园歌手大赛策划书
2014/01/17 职场文书
餐厅楼面部长岗位职责范文
2014/02/16 职场文书
如何写自我评价?自我评价写什么好?
2014/03/14 职场文书
药品营销专业毕业生自荐信
2014/07/02 职场文书
优秀教师自我评价范文
2014/09/27 职场文书
出纳工作检讨书
2014/10/18 职场文书
初中生思想道德自我评价
2015/03/09 职场文书
2015年文员个人工作总结
2015/04/09 职场文书
Android超详细讲解组件ScrollView的使用
2022/03/31 Java/Android
Python面试不修改数组找出重复的数字
2022/05/20 Python