团队汇报时老师讲了一下is_null和isset的区别,发现自己不是很清楚,所以学习了一下is_null、isset、empty三个php函数之间的区别,和大家分享一下,欢迎指正。
1.is_null
<span style="font-size:18px;">//is_null
var_dump(is_null($a));//报错,且返回true
$age;
var_dump(is_null($age));//报错,且返回true
$age = null;
var_dump(is_null($age));//true
$mengyunzhi = 1;
var_dump(is_null($mengyunzhi));//false</span>
有以上代码可以看出,我们一般用is_null来判断已存在的变量的值是否为null。
2.isset
<span style="font-size:18px;">//isset
var_dump(isset($meng));//false
$yun = null;
var_dump(isset($yun));//false
$zhi = 1;
var_dump(isset($zhi));//true</span>
isset用来判断变量是否存在或者为null。细心的你可能会发现一个有趣的现象,只要is_null为true,isset就为false,反之亦然。
3.empty
<span style="font-size:18px;">//empty
$mengyun = 1;
var_dump(empty($mengyun));//false
$test = null;
var_dump(empty($test));//true
$test = '0';
var_dump(empty($test));//true
var_dump(empty($char));//true</span>
empty用来判断变量存在,且值不为0,‘0’,null,false,array()等等。
如果有兴趣可以自己试一下,相信会有所收获。另外,由于php版本的问题可能会有细微的差别。
如有错误,欢迎指正。
参考:
http://blog.youkuaiyun.com/jiaobuchong/article/details/41807011