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);
特别注意第3点
它只能判断是否为null,⽽0/false/空数组都认为有值的!
<?php
// ⼀般形式
$msg1 = $number ?? '未设置该变量';
echo $msg1;//'未设置该变量'
$number = 100;
$msg2 = $number ?? '未设置该变量';
echo $msg2;//100
// 链式
$msg3 = $number1 ?? $number2 ?? '未设置该变量';
三目条件运算符?:的含义
echo $msg3;//未设置该变量 //没有赋值都是null,所以返回'未设置该变量'
$number1 = 100;//即使是0/false/空数组都认为有值的!
$msg3 = $number1 ?? $number2 ?? '未设置该变量';
echo $msg3;//100 //执⾏到第⼀步就得到结果,所以返回100

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。