PHP中isset与array_key_exists的区别实例分析
发布:smiling 来源: PHP粉丝网 添加日期:2021-05-27 14:40:54 浏览: 评论:0
这篇文章主要介绍了PHP中isset与array_key_exists的区别,较为详细的分析了isset与array_key_exists使用中的区别,并实例分析其具体用法,需要的朋友可以参考下。
本文实例讲述了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";
Tags: isset array_key_exists
- 上一篇:php计算整个目录大小的方法
- 下一篇:老版本PHP转义Json里的特殊字符的函数
相关文章
- ·PHP empty() isset() is_null() 区别与性能比较(2014-01-17)
- ·php中empty(), is_null(), isset()函数区别(2014-02-09)
- ·关于php函数isset和empty的一些误解(2014-06-11)
- ·php中isset()函数变量判断实例(2014-09-13)
- ·再谈php中empty与isset区别详解(2014-09-13)
- ·php empty(), isset(), is_null()函数用法实例(2014-09-13)
- ·PHP isset()函数与empty()函数区别(2014-09-19)
- ·PHP中的isset()和array_key_exists()函数的区别(2019-12-16)
- ·为什么要在PHP中同时检查isset()和!empty()函数(2019-12-16)
- ·PHP中isset()和empty()函数有什么区别?(2020-01-31)
- ·PHP中isset()和unset()函数的用法小结(2020-10-26)
- ·PHP中检查isset()和!empty()函数的必要性(2021-11-07)
- ·PHP中的empty、isset、isnull的区别与使用实例(2021-11-13)
- ·php中isset与empty函数的困惑与用法分析(2021-12-02)
- ·php数组查找函数in_array()、array_search()、array_key_exists()使用实例(2020-11-21)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)