编程语言
首页 > 编程语言> > php的三元运算符

php的三元运算符

作者:互联网

简单记录一哈php的三元运算符的用法:
   啥子是三元运算,即第一个表达式作为判断条件,在后面两个表达式中选择一个执行。
若判断成立,则执行第二个表达式,否则执行第三个表达式。

看到好多网友都说的不太全面或者不清不楚,所以这里特意整理了一下,如下:

1. (expr1)?(expr2):(expr3);
=> 表达式1 ? 表达式2 : 表达式3
=> 如果条件“expr1”成立,则返回“expr2”,否则返回“expr3”。

$number = 100;
$msg = $number > 0 ? '大于0' : '不大于0';
echo $msg;//大于0




2. (expr1)?:(expr2);
=> 这个是php5.3开始才有的功能
=> 如果条件“expr1”成立,则返回“expr1”,否则“expr2”。

<?php
$number = 100;
$msg = $number ?: '不大于0';
echo $msg;//100




3. (expr1)??(expr2);
=> 这个是php7开始才有的功能
=> 又叫空合并运算符,相当于 isset(expr1) ? expr1 : expr2;
=> 如果条件“isset(expr1)”成立,则执行语句“expr1”,否则执行“expr2”。
=> 链式:(expr1)?? (expr2) ?? (expr3);
特别注意
它只能判断是否为null,而0/false/空数组都认为有值的!

<?php
// 一般形式
$msg1 = $number ?? '未设置该变量';
echo $msg1;//'未设置该变量'

$number = 100;
$msg2 = $number ?? '未设置该变量';
echo $msg2;//100

// 链式
$msg3 = $number1 ?? $number2 ?? '未设置该变量';
echo $msg3;//未设置该变量,直接到最后

$number1 = 100;//即使是0/false/空数组都认为有值的!
$msg3 = $number1 ?? $number2 ?? '未设置该变量';
echo $msg3;//100,执行到第一步就得到结果,所以返回100

标签:expr2,执行,运算符,expr3,expr1,三元,php,表达式
来源: https://www.cnblogs.com/xuduan/p/13925267.html