$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,但是如果变量不存在会报错,??不报错。
标签:null,false,运算符,报错,三元,PHP,true From: https://www.cnblogs.com/woods1815/p/16887076.html