开发 PHP 也有几年了,突然发现 empty(),isset(),is_null() 也不是那么明白。虽然之前查过使用区别,但是经常会忘记。。
这次结合实例测试,记忆应该会深刻点。
测试代码如下:
$a; $b = false; $c = ''; $d = 0; $e = null; $f = array();
var_dump(empty($a));//true var_dump(empty($b));//true var_dump(empty($c));//true var_dump(empty($d));//true var_dump(empty($e));//true var_dump(empty($f));//true
从结果中可以看出,只要数据类型是 空 或 假,empty()就输出 true。
var_dump(isset($a));//false var_dump(isset($b));//true var_dump(isset($c));//true var_dump(isset($d));//true var_dump(isset($e));//false var_dump(isset($f));//true
从结果中可以看出,isset() 只能判断是否为 NULL 和 未定义。
var_dump(is_null($a));//true var_dump(is_null($b));//false var_dump(is_null($c));//false var_dump(is_null($d));//false var_dump(is_null($e));//true var_dump(is_null($f));//false
is_null() 从结果可以看出,就是字面意思了。
由此可见 empty() 可以用来判定所有的数据类型是否为空或假,而 is_null 与 isset 基本一样,只能用来判断是否为NULL和未定义。