Heim  >  Artikel  >  Backend-Entwicklung  >  PHP中isset与array_key_exists的区别实例分析_PHP教程

PHP中isset与array_key_exists的区别实例分析_PHP教程

WBOY
WBOYOriginal
2016-07-13 09:52:13853Durchsuche

PHP中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程序设计有所帮助。

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/1009819.htmlTechArticlePHP中isset与array_key_exists的区别实例分析 本文实例讲述了PHP中isset与array_key_exists的区别。分享给大家供大家参考。具体分析如下: 1.对于数组...
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn