php表达式??与?:的使用
$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');//Notice: Undefined index: test3;同时输出 string(7) "nothing"
总结:
双问号(??): 相当于 isset($x) ? $x : 'nothing'; //用于变量不存在的情况,不考虑值的真假
问冒号(?:): 相当于 if($x) ? $x : 'nothing'; //用于变量已存在的情况,考虑值的真假
浙公网安备 33010602011771号