php 7.2 双问号,PHP7的双问号“??”语法以及和“?:”的区别

PHP7中增加了双问号“??”的语法,我们来讨论一下这个新语法怎么使用,先看下面这个简单的语句:echo $a ?? -1;

这行语句是一个判断语句,判断变量$a是否存在,存在的话输出变量$a,否则输出-1。很显然由于变量$a没有被定义,所以输出的结果是“-1”。

我们再来看下面这行简单的语句:echo $a ? 1 : -1;

上面这行代码是判断变量$a是否为空,如果为空的话输出“-1”,否则输出“1”。这行代码的输出结果也是“-1”,那么上面这两者有什么区别呢?

“??”语句判断的是变量$a是否存在,“?:”语句判断的是变量$a是否为空,当然如果变量不存在的话,也是为空的。所以“?:”的结果包含了“??”的结果。

我们再来看以下两个例子:

例子一:$a = 0;

echo $a ?? -1;

例子二:$a = 0;

echo $a ? 1 : -1;

我们运行上面两个示例后可以发现,例子一的输出是“0”,因为变量$a已经被赋值了,是一个已经存在的变量,所以输出了变量$a本身的值“0”。例子二输出的是“-1”,因为值为“0”的变量依旧会被认为是空的,所以输出了“-1”。

通过以上示例,我们发现双问号“??”判断的是是否存在,“?:”判断的是是否为空。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值