PHP7 null 合并运算符注意事项
php7 新增了 null 合并运算符 ??,刚开始接触的时候没有仔细看文档,还一直纳闷这跟三元运算符的省略写法 ( ?: ) 什么区别.
$a = '';
$b = 'bbb';
var_dump($a ?? $b); // 输出: string ''
var_dump($a ?: $b); // 输出: string 'bbb'
$a = false;
$b = 'bbb';
var_dump($a ?? $b); // 输出: boolean false
var_dump($a ?: $b); // 输出: string 'bbb'
$a = null;
$b = 'bbb';
var_dump($a ?? $b); // 输出: string 'bbb'
var_dump($a ?: $b); // 输出: string 'bbb'
也就是只有$a 为 null 时才会输出 $b
本作品采用《CC 协议》,转载必须注明作者和本文链接
好像是说输出从左至右第一个不为null的数
@doobi 嗯, 对, 所以取名叫 null 合并运算符 :joy: , 如果两个都是 null 的话还是会返回 null
以前我们可能碰到根据 $a 来确定 $c:
$c = is_set($a) ? $a : $b;
现在可以简写为:
$c = $a ?? $b;
echo $a ?? $b;
同等于
echo isset($a) ? $a : $b;