$a ?? 0 等同于 isset($a) ? $a : 0 $a ?: 0 等同于 $a ? $a : 0 empty: 判断一个变量是否为空(null、false、00、0、’0′、』这类,都会返回true) isset: 判断一个变量是否设置(值为false、00、0、’0′、』这类,也会返回true)
示例
// 定义之前 print_r($name ?? 'Tom'); // Tom print_r($name ?: 'Jack'); // Jack // Undefined variable: name // 定义之后 $name = ''; print_r($name ?? 'Tom'); // '' print_r($name ?: 'Jack'); // Jack
参考