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 相关文章推荐
在PHP3中实现SESSION的功能(一)
Oct 09 PHP
PHP动态变静态原理
Nov 25 PHP
使用php来实现网络服务
Sep 15 PHP
php使用curl发送json格式数据实例
Dec 17 PHP
利用浏览器的Javascript控制台调试PHP程序
Jan 08 PHP
分享一个超好用的php header下载函数
Jan 31 PHP
thinkphp缓存技术详解
Dec 09 PHP
基于JQuery+PHP编写砸金蛋中奖程序
Sep 08 PHP
Yii2下点击验证码的切换实例代码
Mar 14 PHP
php生出随机字符串
Jul 06 PHP
Laravel如何实现适合Api的异常处理响应格式
Jun 14 PHP
PHP程序守护进程化实现方法详解
Jul 16 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学习之PHP变量
2006/10/09 PHP
PHP 可阅读随机字符串代码
2010/05/26 PHP
Laravel中使用阿里云OSS Composer包分享
2015/02/10 PHP
为指定元素增加样式的js代码
2009/12/09 Javascript
让firefox支持IE的一些方法的javascript扩展函数代码
2010/01/02 Javascript
Javascript 静态页面实现随机显示广告的办法
2010/11/17 Javascript
30个让人兴奋的视差滚动(Parallax Scrolling)效果网站
2012/03/04 Javascript
Javascript图像处理—亮度对比度应用案例
2013/01/03 Javascript
页面使用密码保护代码
2013/04/10 Javascript
jquery学习总结(超级详细)
2014/09/04 Javascript
深入理解JavaScript系列(29):设计模式之装饰者模式详解
2015/03/03 Javascript
JavaScript返回0-1之间随机数的方法
2015/04/06 Javascript
jQuery 3.0 的 setter和getter 模式详解
2016/07/11 Javascript
原生JS实现风箱式demo,并封装了一个运动框架(实例代码)
2016/07/22 Javascript
CSS3 media queries结合jQuery实现响应式导航
2016/09/30 Javascript
js实现复选框的全选和取消全选效果
2017/01/03 Javascript
JavaScript中 this 指向问题深度解析
2017/02/21 Javascript
JS简单获取当前日期和农历日期的方法
2017/04/17 Javascript
实例讲解DataTables固定表格宽度(设置横向滚动条)
2017/07/11 Javascript
vue实现word,pdf文件的导出功能
2018/07/31 Javascript
初步介绍Python中的pydoc模块和distutils模块
2015/04/13 Python
python+django加载静态网页模板解析
2017/12/12 Python
python中map的基本用法示例
2018/09/10 Python
通过Python编写一个简单登录功能过程解析
2019/09/04 Python
Python函数的定义方式与函数参数问题实例分析
2019/12/26 Python
Python selenium爬虫实现定时任务过程解析
2020/06/08 Python
浅谈Python爬虫原理与数据抓取
2020/07/21 Python
韩国美国时尚服装和美容在线全球市场:KOODING
2018/11/07 全球购物
国旗下的演讲稿
2014/05/08 职场文书
面试必备的求职信
2014/05/25 职场文书
启动仪式策划方案
2014/06/14 职场文书
个人委托书怎么写
2014/09/17 职场文书
小区的门卫岗位职责
2014/10/01 职场文书
廉洁自律承诺书2016
2016/03/25 职场文书
公文写作:工伤事故分析报告怎么写?
2019/11/05 职场文书
python中pandas对多列进行分组统计的实现
2021/06/18 Python