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:\Users\huchao\Desktop\test.php on line 21

bool(true)

bool(false)

bool(false)

bool(false)

bool(true)

哎,泪流满面啊,变量没有设定是null,但也会警告,null也是null,其他的都不是null,算了,这个好像还是不用比较好。

!,通常我们确定该值存在

!当且仅当确定值存在的时候采用,不然那一堆的警告,作为一个轻度强迫症是不会原谅自己的。不过当我看到很多代码中对那些未定义的变量使用!的时候,我也是醉了…

最后,我还是习惯了使用empty……原来我都是用isset组合==的,哎…

附录

关于使用empty,其中会隐藏一些问题。

未完…

赞赏

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值