登录后台

页面导航

本文编写于 191 天前,最后修改于 191 天前,其中某些信息可能已经过时。

php里 ??和?:的区别

===
php7里新增了?? 特性

$a ?? 0; 相当于 isset($a) ? $a : 0;的三元运算.$a是否设置

$a ?: 0; 相当于 $a ? $a : 0;的三元运算.$a是否存在

由于使用laravel框架较多,有时部分代码会简写

例如

    $a[$b->c]

这种写法比较方便,但是有时可能$b->c可能不存在. 导致整个代码串报错,所以可以$a[$b->c] ?? 0的形式
保证代码不会报错.

但是$a[$b->c] ?: 0 判断的是整体是否存在,并不能判断$b->c是否设置.还是会整体报错,所以具体使用哪种写法要注意!