php三元运算符?:和??
Posted whyly
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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;
}
参考
以上是关于php三元运算符?:和??的主要内容,如果未能解决你的问题,请参考以下文章