PHP三元运算的2种写法代码实例
首先,我们现在看一个简单的例子:
代码如下:
<?php
//写法一:
$a = 2;
($a == 1) ? $test = "我们" : $test = "你们";
echo $test;
?>
上述例子呢,先判断$a是否为1 如果是 将“我们”这个字符串存入$test变量里然后输出,如果不是 将“你们”这个字符串存入$test变量里然后输出;
上诉例子代码等价于:
代码如下:
<?php
//写法二:
$a = 2;
echo $test = ($a == 1) ? "我们" : "你们";
#写法三
if($a == 1){
$test="我们";
}else{
$test="你们";
}
echo $test;
?>
复杂点例子
$i = 2; echo $i == 2 ? "A" : $i == 1 ? 'B' : 'C';
实际执行顺序是
($i == 2 ? "A" : $i == 1 )? 'B' : 'C';
相当于A ? 'B' : 'C';
A为真,所以是B
从左向右执行
echo $a == 1 ? 'one' : $a == 2 ? 'two' : $a == 3 ? 'three' : $a == 4 ? 'foura' : 'other';
实际执行顺序是
echo ( ((($a == 1 ? 'one' : $a == 2) ? 'two' : $a == 3 )? 'three' : $a == 4 )? 'four' : 'other');
//结果是four;