$c = $a ?: $b; 等效于 $c = $a ? $a : $b;
$c = $a ?? $b; 等效于 $c = isset($a) ? $a : $b;
示例:
$a = null;
$b = 'b';
$c = $a ?: $b; // b
$c = $a ?? $b; // b
$a = '';
$b = 'b';
$c = $a ?: $b; // b
$c = $a ?? $b; // ''
$a = false;
$b = 'b';
$c = $a ?: $b; // b
$c = $a ?? $b; // false
$a = true;
$b = 'b';
$c = $a ?: $b; // true
$c = $a ?? $b; // true
$a = 0;
$b = 'b';
$c = $a ?: $b; // b
$c = $a ?? $b; // 0
$a = [];
$b = 'b';
$c = $a ?: $b; // b
$c = $a ?? $b; // []
在处理null时,??会被认为是false,其余空字符串,空数值,空数组等都会被认为是true。
?:在处理空值时会被认为是false,但是如果变量不存在会报错,??不报错。
PHP三元运算符 ?? 和 ?:
最新推荐文章于 2025-03-04 11:44:18 发布