总是忘记这些变量的区别,参考下http://www.jb51.net/article/38020.htm,记录下
设置几个变量
<?php $a; $b = false; $c = ''; $d = 0; $e = null; $f = array(); ?>
首先是empty的var_dump输出:
<?php var_dump(empty($a)); var_dump(empty($b)); var_dump(empty($c)); var_dump(empty($d)); var_dump(empty($e)); var_dump(empty($f)); ?>
程序输出为:
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
然后是isset的var_dump输出:
var_dump(isset($a)); var_dump(isset($b)); var_dump(isset($c)); var_dump(isset($d)); var_dump(isset($e)); var_dump(isset($f));
输出结果为:
// 输出
bool(false)
bool(true)
bool(true)
bool(true)
bool(false)
bool(true)
最后是is_null的var_dump输出
var_dump(is_null($a)); var_dump(is_null($b)); var_dump(is_null($c)); var_dump(is_null($d)); var_dump(is_null($e)); var_dump(is_null($f));
输出的结果为:
bool(true)
bool(false)
bool(false)
bool(false)
bool(true)
bool(false)
由此可见 empty() 可以用来判定所有的数据类型是否为空或假,而 is_null 与 isset 基本一样,只能用来判断是否为NULL和未定义。