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';  //变量已存在且变量的值是真

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐