如何将if语句转换为三元运算符?

时间:2016-10-16 19:23:03

标签: php ternary-operator

我试图将if语句转换为三元运算符

这是我的代码:

if($today >= $visa_expiry) {
     echo "style='background-color : red; font-weight: bold; color: white; font-size: 13'";
}

if($today <= $visa_expiry) {
     echo "style='background-color : yellow; font-weight: bold; color: white; font-size: 13'";
}

if($today == $visa_expiry) {
     echo "style='background-color : green; font-weight: bold; color: white; font-size: 13'";
}

到三元运营商

有人能帮帮我吗?谢谢

注意:我的if语句只是一个例子

2 个答案:

答案 0 :(得分:2)

可能的解决方法是在前面的三元返回false时使用另一个三元组:

<?php
$today = 5;
$expiry = 7;
$visaexpiry = ($today < $expiry ? 'yellow': ($today ==$expiry? 'green': ($today>$expiry? 'red': 'nothing')));
echo $visaexpiry;

?>

答案 1 :(得分:0)

我真的不明白你为什么要在这里使用三元组。正如其他人所提到的,这应该是if / else if / else。此外,在您的示例中,可以同时满足所有三个条件。

无论如何,这里有一个用三元运算符表达的一种可能方式的简化例子:

$bg = "green"; // default, assuming $today == $visa_expiry
$bg = $today > $visa_expiry ? "red" : $bg;
$bg = $today < $visa_expiry ? "yellow" : $bg;

请注意,此 将评估这两个条件,即使未满足这两个条件,并将$bg变量分配给自身,最多两次。不好,但是一个有效的解决方案。

Mawia HL

显示了如何使用嵌套的三元运算符进行此操作