php三元运算 ?:与??区别

三元运算在流程中进程用到,你有犯晕的时候吗?

$a?:default 与 $a??default

  • 共同点都是判断$a是否存在,存在返回:$a,否则返回:default
$a='';$b=0;$c='0';$d=array();$e=null;
var_dump($a?:1); // 1
var_dump($a??1); // ''
var_dump($b?:1); // 1
var_dump($b??1); // 0
var_dump($c?:1); // 1
var_dump($c??1); // "0"
var_dump($d?:1); // 1
var_dump($d??1); // array()
var_dump($e?:1); // 1
var_dump($e??1); // 1

综上:

  • $a的值为:0,'',array(),'0'时,$a?:1得到的结果都是1;$a??1得到的结果都是$a;
  • $a的值为:null时,$a?:1与$a??1得到的结果都是1
posted @ 2023-02-01 15:26  xunm  阅读(115)  评论(0)    收藏  举报