?:相较于??对falsy的检测更加严格。
?:是0 ? 0 : 'false'的简化版
echo 0 ?: 'false'; // false
??为NULL合并运算符,相当于isset($var) ? $var : 'char';只有在值为null的时候才属于falsy一族,只有在值为空时才会处理右边逻辑
echo 0 ?? 'false'; // 0
echo '' ?? 'false'; //
echo [] ?? 'false'; // []
echo null ?? 'false' // false
?:与??区别在于,??只认为null为false其他值为true