我是靠谱客的博主 失眠柠檬,最近开发中收集的这篇文章主要介绍php is_null 判断,php的empty,isset,is_null与!,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

来说说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与!所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(58)

评论列表共有 0 条评论

立即
投稿
返回
顶部