概述
来说说php的empty,isset,is_null 与!,这几个都是if语句中比较常见的判断逻辑。但是有时候用的很纠结,甚至看别人写的程序里面也很纠结。特地梳理梳理,避免踩坑
先来定义一些东西
$a;
$b=0;
$c=array();
$d='';
$e=null;
empty,用了会上瘾
这是一个用了会上瘾的语言结构!
多好,empty可接受的参数是一个变量,任意类型,哪怕是变量不存在,只要变量被boolean转换之后是false(参考:php的boolean都有哪些),那么empty返回的就是false,并且不会出现警告!等价于!isset($var) || $var == false
不过注意的是,empty里面不能使用表达式(在php<=5.4),也就是说 empty(trim($name))这个会导致解析错误,不过在php>=5.5这个是有效的!
执行下面代码
var_dump( empty($a) );
var_dump( empty($b) );
var_dump( empty($c) );
var_dump( empty($d) );
var_dump( empty($e) );
结果
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
isset,只需要确定变量是不是存在
通常,为了避免警告产生,一般用到isset,通常在不关心其值的时候用,但是这里有一个坑,请看下面代码
var_dump( isset($a) );
var_dump( isset($b) );
var_dump( isset($c) );
var_dump( isset($d) );
var_dump( isset($e) );
bool(false)
bool(true)
bool(true)
bool(true)
bool(false)
看到没,看到没!null居然也被isset判断为false,这个,我思维一下子转不过来了……我还是少用为妙,我set这个为null,它反而说我没有set它,太放肆了!
is_null,感觉更坑
这个就是用来判断null值的,变量为null,返回true,看代码
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) );
结果
Notice: Undefined variable: a in C:UsershuchaoDesktoptest.php on line 21
bool(true)
bool(false)
bool(false)
bool(false)
bool(true)
哎,泪流满面啊,变量没有设定是null,但也会警告,null也是null,其他的都不是null,算了,这个好像还是不用比较好。
!,通常我们确定该值存在
!当且仅当确定值存在的时候采用,不然那一堆的警告,作为一个轻度强迫症是不会原谅自己的。不过当我看到很多代码中对那些未定义的变量使用!的时候,我也是醉了…
最后,我还是习惯了使用empty……原来我都是用isset组合==的,哎…
附录
关于使用empty,其中会隐藏一些问题。
未完…
赞赏
最后
以上就是失眠柠檬为你收集整理的php is_null 判断,php的empty,isset,is_null与!的全部内容,希望文章能够帮你解决php is_null 判断,php的empty,isset,is_null与!所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复