PHP三元运算符 ?? 和 ?:
$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,但是如果变量不存在会报错,??不报错。