码迷,mamicode.com
首页 > Web开发 > 详细

php三元运算符?:和??

时间:2020-07-06 15:52:40      阅读:55      评论:0      收藏:0      [点我收藏+]

标签:opera   lan   比较运算符   net   否则   bool   特殊   set   pre   

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三元运算符?:和??

标签:opera   lan   比较运算符   net   否则   bool   特殊   set   pre   

原文地址:https://www.cnblogs.com/whyly/p/13254995.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!