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 过滤危险html代码
Jun 29 PHP
PHP 上传文件大小限制
Jul 05 PHP
初步介绍PHP扩展开发经验分享
Sep 06 PHP
php 检查电子邮件函数(自写)
Jan 16 PHP
php实用代码片段整理
Nov 12 PHP
PHP封装返回Ajax字符串和JSON数组的方法
Feb 17 PHP
php基于数组函数实现关联表的编辑操作示例
Jul 04 PHP
php生成毫秒时间戳的实例讲解
Sep 22 PHP
Laravel框架处理用户的请求操作详解
Dec 20 PHP
Laravel 框架基于自带的用户系统实现登录注册及错误处理功能分析
Apr 14 PHP
如何通过PHP实现Des加密算法代码实例
May 09 PHP
php实现图片压缩处理
Sep 09 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将身份证正反面两张照片合成一张图片的代码
2017/04/08 PHP
PHP实现ASCII码与字符串相互转换的方法
2017/04/29 PHP
深入理解PHP的远程多会话调试
2017/09/21 PHP
在JavaScript中实现命名空间
2006/11/23 Javascript
jQuery选中select控件 无法设置selected的解决方法
2010/09/01 Javascript
window.open打开页面居中显示的示例代码
2013/12/27 Javascript
jqeury-easyui-layout问题解决方法
2014/03/24 Javascript
js实现ifram取父窗口URL地址的方法
2015/02/09 Javascript
javascript获取系统当前时间的方法
2015/11/19 Javascript
深入理解JavaScript 函数
2016/06/06 Javascript
基于css3新属性transform及原生js实现鼠标拖动3d立方体旋转
2016/06/12 Javascript
下一代Bootstrap的5个特点 超酷炫!
2016/06/17 Javascript
jQuery插件cxSelect多级联动下拉菜单实例解析
2016/06/24 Javascript
细数JavaScript 一个等号,两个等号,三个等号的区别
2016/10/09 Javascript
js获取当前时间(昨天、今天、明天)
2016/11/23 Javascript
详解vue渲染函数render的使用
2017/12/12 Javascript
vue+element UI实现树形表格带复选框的示例代码
2019/04/16 Javascript
layui数据表格重载实现往后台传参
2019/11/15 Javascript
JavaScript 实现HTML DOM增删改查操作的常见方法详解
2020/01/04 Javascript
[09:13]2014DOTA2国际邀请赛 中国区预选赛coser表演
2014/05/23 DOTA
盘点提高 Python 代码效率的方法
2014/07/03 Python
Python实现设置windows桌面壁纸代码分享
2015/03/28 Python
Python3使用pandas模块读写excel操作示例
2018/07/03 Python
python实现随机梯度下降法
2020/03/24 Python
python删除文件夹下相同文件和无法打开的图片
2019/07/16 Python
Python中变量的输入输出实例代码详解
2019/07/28 Python
python调用jenkinsAPI构建jenkins,并传递参数的示例
2020/12/09 Python
森海塞尔美国官网:Sennheiser耳机与耳麦
2017/07/19 全球购物
阿迪达斯印尼官方网站:adidas印尼
2020/02/10 全球购物
职业女性的职业规划
2014/03/04 职场文书
宣传保护环境的公益广告词
2014/03/13 职场文书
运动会演讲稿50字
2014/08/25 职场文书
放飞理想演讲稿
2014/09/09 职场文书
python opencv旋转图片的使用方法
2021/06/04 Python
详解在OpenCV中如何使用图像像素
2022/03/03 Python
Vue Mint UI mt-swipe的使用方式
2022/06/05 Vue.js