PHP中isset与array_key_exists的区别实例分析_PHP教程
Jul 13, 2016 am 09:52 AMPHP中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不用;
测试代码:
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
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 isset($test_arr['aa']); } $time_end = microtime_float(); $time = $time_end - $time_start; echo "isset 100 is $time\n"; for($i=0;$i isset($test_arr['aa']); } $time_end = microtime_float(); $time = $time_end - $time_start; echo "isset 10000 is $time\n"; for($i=0;$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 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 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 array_key_exists('aa',$test_arr); } $time_end = microtime_float(); $time = $time_end - $time_start; echo "array_key_exists 1000000 is $time\n"; |
希望本文所述对大家的php程序设计有所帮助。

Article chaud

Outils chauds Tags

Article chaud

Tags d'article chaud

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Guide d'installation et de mise à niveau de PHP 8.4 pour Ubuntu et Debian

Deepseek Quelle est la différence entre la version R1 et V3

Résumé des FAQ pour une utilisation profonde

Comment configurer Visual Studio Code (VS Code) pour le développement PHP

Programme PHP pour compter les voyelles dans une chaîne

Comment analysez-vous et traitez-vous HTML / XML dans PHP?

Pourquoi Bittensor est-il le 'Bitcoin' sur la piste AI?
