PHP empty() 函数判断一个变量是否为空,具体哪些值会返回 true?特做了以下的试验
<?php
echo 'Number:<br />';
$v00 = 0;
echo '$v00: ';
var_dump($v00);
echo ', empty($v00): ';
var_dump(empty($v00)); // true
echo '<br />';
$v01 = 1;
echo '$v01: ';
var_dump($v01);
echo ', empty($v01): ';
var_dump(empty($v01)); // false
echo '<br />';
echo '<br />';
echo 'String:<br />';
$v10 = '';
echo '$v10: ';
var_dump($v10);
echo ', empty($v10): ';
var_dump(empty($v10)); // true
echo '<br />';
$v11 = 'a';
echo '$v11: ';
var_dump($v11);
echo ', empty($v11): ';
var_dump(empty($v11)); // false
echo '<br />';
echo '<br />';
echo 'Array:<br />';
$v20 = array();
echo '$v20: ';
var_dump($v20);
echo ', empty($v20): ';
var_dump(empty($v20)); // true
echo '<br />';
$v21 = array(1, 2, 3);
echo '$v21: ';
var_dump($v21);
echo ', empty($v21): ';
var_dump(empty($v21)); // false
echo '<br />';
echo '<br />';
echo 'Boolean:<br />';
$v30 = true;
echo '$v30: ';
var_dump($v30);
echo ', empty($v30): ';
var_dump(empty($v30)); // false
echo '<br />';
$v31 = false;
echo '$v31: ';
var_dump($v31);
echo ', empty($v31): ';
var_dump(empty($v31)); // true
echo '<br />';
echo '<br />';
echo 'null:<br />';
$v40 = null;
echo '$v40: ';
var_dump($v40);
echo ', empty($v40): ';
var_dump(empty($v40)); // true
echo '<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() 要快多了
本文通过实验展示了 PHP empty() 函数在判断不同数据类型时的表现,并对比了其与 count() 函数在判断数组空值时的性能差异。重点探讨了 empty() 函数在实际应用中的高效使用。
1383

被折叠的 条评论
为什么被折叠?



