php的小魔法

在三元运算符的应用中。有以下几种:

$b = $b ? $c: 'sfs';  
$b = $b ? : 'sfs';
$b = $b ?? 'd';

第一种比较好理解了,除了python和Go,几乎所有语言都有这种用法吧?!

重点是下面这两种用法,一定要注意区别啊。

我先举个例子就知道了:

     $b = '' ? 0:1;
        print 'first:'.$b;    //输出:first:1
        $b = '' ?? 1; 
        print 'second:'.$b;  //输出:second:

单个问号,是判断该值是否为该类型的空值。即如果是整数,那么前面是0,这里也会输出1.

双问号是判断该值是否存在,类似isset.

现在我们这样做:

$b = null ?? 1;
print 'second:'.$b;

输出:second:1

--------EOF---------
微信分享/微信扫码阅读