(expr1)?(expr2):(expr3); //表达式1?表达式2:表达式3
如果条件“expr1”成立,则执行语句“expr2”,否则执行“expr3”。<?php $a = 10; $a % 2 == 0 ? print '$a 是偶数!' : print '$a 是奇数!'; ?>运行结果如下:
$a 是偶数!
另外 expr2 和 expr3 也可以使用单引号('')或双引号("")来省略其中的任意一个,来避免不必要的代码,如下所示:<?php $a = 10; $b = 7; $a % 2 == 0 ? print '$a 是偶数!<br>' : ""; $b % 2 == 0 ? '' : print '$b 是奇数!'; ?>运行结果如下:
$a 是偶数!
$b 是奇数!
注意:使用三元运算符时,如果需要打印字符串,建议使用 print 语句替代 echo 语句。
不仅如此,三元运算符还可以扩展使用,当设置的条件成立或不成立,执行语句都可以不止一句,语法格式如下:(expr1) ? (expr2).(expr3) : (expr4).(expr5);
可以看到,多个执行语句之间可以使用用字符串运算符“.”连接起来,各个执行语句用小括号包裹起来以表明它是一个独立而完整的执行语句。<?php $a = 10; $b = 6; $c = 12; $x = $a>$b ? ($a<$c ? $c-$a : $a-$c) : ($b<$c ? $c-$b : $b-$c); echo '$x ='.$x; ?>注意,第五行的赋值操作会等待三元运算符执行完后才会执行。
$x =2
嵌套使用的三元运算符虽然可以节省很多代码,但是可读性不太好,日后代码维护起来也很不方便,所以像这种情况我们尽量使用 if else 语句来实现。Copyright © 广州京杭网络科技有限公司 2005-2024 版权所有 粤ICP备16019765号
广州京杭网络科技有限公司 版权所有