Home >Backend Development >PHP Tutorial >Example analysis of the difference between isset and array_key_exists in PHP, _PHP tutorial
This article gives an example of the difference between isset and array_key_exists in PHP. Share it with everyone for your reference. The specific analysis is as follows:
1. The judgment of array values is different. If the value is null or '' or false, isset returns false and array_key_exists returns true;
2. The execution efficiency is different. isset is a built-in operator, array_key_exists is a built-in function of PHP, and isset is faster. Please refer to: PHP function implementation principle and performance analysis
3. When using isset to access a non-existent index array value, an E_NOTICE php error message will not be caused;
4.array_key_exists will call get_defined_vars to determine whether the array variable exists, isset is not used;
Test code:
<?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";
I hope this article will be helpful to everyone’s PHP programming design.