PHP empty() 的判断

来源:互联网 发布:平安科技 企业大数据 编辑:程序博客网 时间:2024/05/19 14:54

PHP empty() 函数判断一个变量是否为空,具体哪些值会返回 true?特做了以下的试验

<?phpecho 'Number:<br />';$v00 = 0;echo '$v00: ';var_dump($v00);echo ', empty($v00): ';var_dump(empty($v00)); // trueecho '<br />';$v01 = 1;echo '$v01: ';var_dump($v01);echo ', empty($v01): ';var_dump(empty($v01)); // falseecho '<br />';echo '<br />';echo 'String:<br />';$v10 = '';echo '$v10: ';var_dump($v10);echo ', empty($v10): ';var_dump(empty($v10)); // trueecho '<br />';$v11 = 'a';echo '$v11: ';var_dump($v11);echo ', empty($v11): ';var_dump(empty($v11)); // falseecho '<br />';echo '<br />';echo 'Array:<br />';$v20 = array();echo '$v20: ';var_dump($v20);echo ', empty($v20): ';var_dump(empty($v20)); // trueecho '<br />';$v21 = array(1, 2, 3);echo '$v21: ';var_dump($v21);echo ', empty($v21): ';var_dump(empty($v21)); // falseecho '<br />';echo '<br />';echo 'Boolean:<br />';$v30 = true;echo '$v30: ';var_dump($v30);echo ', empty($v30): ';var_dump(empty($v30)); // falseecho '<br />';$v31 = false;echo '$v31: ';var_dump($v31);echo ', empty($v31): ';var_dump(empty($v31)); // trueecho '<br />';echo '<br />';echo 'null:<br />';$v40 = null;echo '$v40: ';var_dump($v40);echo ', empty($v40): ';var_dump(empty($v40)); // trueecho '<br />';echo '<br />';?>

运行结果:

Number:
$v00: int(0) , empty($v00): bool(true)
$v01: int(1) , empty($v01): bool(false)

String:
$v10: string(0) "" , empty($v10): bool(true)
$v11: string(1) "a" , empty($v11): bool(false)

Array:
$v20: array(0) { } , empty($v20): bool(true)
$v21: array(3) { [0]=> int(1) [1]=> int(2) [2]=> int(3) } , empty($v21): bool(false)

Boolean:
$v30: bool(true) , empty($v30): bool(false)
$v31: bool(false) , empty($v31): bool(true)

null:
$v40: NULL , empty($v40): bool(true)


如果需要判断一个数组是否为空,可以用 !count($arr) 或者 empty($arr),但哪个函数效率高呢?

<?php$arr = array();$start = microtime(true);for($i = 0; $i < 1000000; $i++) {    count($arr);}$end = microtime(true);echo 'count(): ' . ($end - $start) . 's.<br />';$start = microtime(true);for($i = 0; $i < 1000000; $i++) {    empty($arr);}$end = microtime(true);echo 'empty(): ' . ($end - $start) . 's.<br />';?>

运行结果:

count(): 0.42235589027405s.
empty(): 0.13596510887146s.

很明显,empty()速度比 count() 要快多了

0 0
原创粉丝点击