php三元運算符?:和??


1.(expr1) ? (expr2) : (expr3)

在 expr1 求值為 TRUE 時的值為 expr2,在 expr1 求值為 FALSE 時的值為 expr3。

$a = (expr1) ? (expr2) : (expr3);

//等價於下面的代碼
if (expr1) {
  $a = expr2;
} else {
  $a = expr3;
}

注意,當expr1是一個變量時,以下情況為FALSE

false //布爾值false
0 //整數0
0.0 //浮點型0.0
"" //空字符串
"0" //字符串0
[] //空數組
NULL //特殊類型NULL,包括尚未賦值的變量

2.(expr1) ?: (expr3)

自PHP5.3起,支持expr1 ?: expr3,在 expr1 求值為 TRUE 時返回 expr1,否則返回 expr3。

$a = expr1 ?: expr3;

//等價於下面代碼
if (expr1) {
  $a = expr1;
} else {
  $a = expr3;
}

3.(expr1) ?? (expr2)

PHP7引入 "??"(NULL合並),等價於isset(expr1) ? expr1 : epr2。

$a = (expr1) ?? (expr2);

//等價於下面代碼
if (isset(expr1)) {
  $a = expr1;
} else {
  $a = expr2;
}

參考


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM