$v = NULL;
$s = microtime(TRUE);
for($i=0; $i<1000; $i++) {
is_null($v);
}
print microtime(TRUE)-$s;//0.010066986083984
print "<br>";
$s = microtime(TRUE);
for($i=0; $i<1000; $i++) {
$v===NULL;
}
print microtime(TRUE)-$s;//0.00046491622924805
print "<br>";
$s = microtime(TRUE);
for($i=0; $i<1000; $i++) {
empty($v);
}
print microtime(TRUE)-$s;//0.00037789344787598
以上可见用‘===’判断与empty()差不多,is_null最慢
同理我们再来测试下empty和isset的效率
$s = microtime(TRUE);
for($i=0; $i<1000; $i++) {
isset($v);
}
print microtime(TRUE)-$s;//0.00038719177246094
print "<br>";
$s = microtime(TRUE);
for($i=0; $i<1000; $i++) {
empty($v);
}
print microtime(TRUE)-$s;//0.00038290023803711
可得结果empty()和isset()效率也基本差不多
综合上述~~~用empty()判断解决一切~~~
顺带提下判断数组的null
$a = array();
$a == null <== return true
$a === null < == return false
is_null($a) <== return false