1.三元表达式
$arr = ['test' => '','test2' => 'something'];
var_dump($arr['test'] ?? 'nothing');//string(0) ""
var_dump($arr['test'] ?: 'nothing');//string(7) "nothing"
var_dump($arr['test2'] ?? 'nothing');//string(9) "something"
var_dump($arr['test2'] ?: 'nothing');//string(9) "something"
var_dump($arr['test3'] ?? 'nothing');//string(7) "nothing"
var_dump($arr['test3'] ?: 'nothing');//string(7) "nothing"
总结:
双问号(??): 相当于 isset($x) ? $x : 'nothing'; //变量存在即可 不考虑变量值的情况
问冒号(?:): 相当于 if($x) ? $x : 'nothing'; //变量已存在且变量的值是真