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以ROOT权限执行系统命令的方法
Feb 10 PHP
PHP中Date()时间日期函数的使用方法小结
Apr 20 PHP
PHPEXCEL 使用小记
Jan 06 PHP
PHP URL路由类实例
Nov 12 PHP
php中chdir()函数用法实例
Nov 13 PHP
php数组查找函数总结
Nov 18 PHP
Twig模板引擎用法入门教程
Jan 20 PHP
php图片上传类 附调用方法
May 15 PHP
php 7新特性之类型申明详解
Jun 06 PHP
php在windows环境下获得cpu内存实时使用率(推荐)
Feb 08 PHP
PHP实现简单登录界面
Oct 23 PHP
php中Swoole的热更新实现代码实例
Mar 04 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中利用substr_replace将指定两位置之间的字符替换为*号
2011/01/27 PHP
PHP开发中常见的安全问题详解和解决方法(如Sql注入、CSRF、Xss、CC等)
2014/04/21 PHP
php面向对象中static静态属性和静态方法的调用
2015/02/08 PHP
PHP给源代码加密的几种方法汇总(推荐)
2018/02/06 PHP
PHP实现微信提现功能
2018/09/30 PHP
PHP使用SOAP调用API操作示例
2018/12/25 PHP
innerhtml用法 innertext用法 以及innerHTML与innertext的区别
2009/10/26 Javascript
extjs中grid中嵌入动态combobox的应用
2011/01/01 Javascript
45个JavaScript编程注意事项、技巧大全
2015/02/11 Javascript
JS实现仿Windows7风格的网页右键菜单效果代码
2015/09/11 Javascript
jquery制作属于自己的select自定义样式
2015/11/23 Javascript
JavaScript ES6的新特性使用新方法定义Class
2016/06/28 Javascript
AngularJS中指令的四种基本形式实例分析
2016/11/22 Javascript
Vue form 表单提交+ajax异步请求+分页效果
2017/04/22 Javascript
AngularJS折叠菜单实现方法示例
2017/05/18 Javascript
解决JavaScript中0.1+0.2不等于0.3问题
2018/10/23 Javascript
vue 项目接口管理的实现
2019/01/17 Javascript
vue实现文字加密功能
2019/09/27 Javascript
在Vue.js中使用TypeScript的方法
2020/03/19 Javascript
Bootstrap实现前端登录页面带验证码功能完整示例
2020/03/26 Javascript
[14:03]2017DOTA2亚洲邀请赛开幕式:12神兵演绎水墨中华
2017/04/01 DOTA
python抓取某汽车网数据解析html存入excel示例
2013/12/04 Python
python基础入门学习笔记(Python环境搭建)
2016/01/13 Python
Python 获取当前所在目录的方法详解
2017/08/02 Python
python学习教程之Numpy和Pandas的使用
2017/09/11 Python
django主动抛出403异常的方法详解
2019/01/04 Python
简单了解python装饰器原理及使用方法
2019/12/18 Python
PyPDF2读取PDF文件内容保存到本地TXT实例
2020/05/12 Python
Bootstrap 学习分享
2012/11/12 HTML / CSS
Ben Sherman官方网站:英国男装品牌
2019/10/22 全球购物
J2EE中的容器都包括哪些
2013/08/21 面试题
丧事主持词大全
2014/04/02 职场文书
校园广播稿100字
2014/10/06 职场文书
淮阳太昊陵导游词
2015/02/10 职场文书
年终奖金发放管理制度,中小企业适用,拿去救急吧!
2019/07/12 职场文书
canvas多重阴影发光效果实现
2021/04/20 Javascript