如何在PHP中使用三元运算符代替if-else
我试图用三元运算符来缩短代码 这是我的原始代码:如何在PHP中使用三元运算符代替if-else,php,ternary-operator,Php,Ternary Operator,我试图用三元运算符来缩短代码 这是我的原始代码: if ($type = "recent") { $OrderType = "sid DESC"; } elseif ($type = "pop") { $OrderType = "counter DESC"; } else { $OrderType = "RAND()"; } 如何在代码中使用三元运算符而不是ifs/elses $OrderType = ($type = "recent") ? "sid DESC" :
if ($type = "recent") {
$OrderType = "sid DESC";
} elseif ($type = "pop") {
$OrderType = "counter DESC";
} else {
$OrderType = "RAND()";
}
如何在代码中使用三元运算符而不是if
s/else
s
$OrderType = ($type = "recent") ? "sid DESC" : "counter DESC" ;
这是我尝试过的代码,但不知道如何向其中添加“
elseif
部分”。这称为三元运算符
您可以使用其中两种:
$OrderType = ($type == 'recent' ? 'sid DESC' : ($type == 'pop' ? 'counter DESC' : 'RAND()'))
这可以理解为:
- 如果
是$type
“最近的”
- 然后使用
'sid DESC'
- 否则
- 如果
是$type
'pop'
- 然后使用“计数器描述”
- 否则请使用“RAND()”
- 如果
几点注意:
- 您必须使用
或==
;而不是===
=
- 前两个是
- 最后一个是
- 最好使用
,使内容更易于阅读()
- 你不应该使用太多这样的三元运算符:我认为这会让代码有点难以理解
作为三元运算符的参考,引用: 第三类是三元结构 操作员:
?:
应该使用它 在两个表达式之间进行选择 取决于第三个,而不是 选择两个句子或两条道路 执行
周围三元 带括号的表达式是一个非常复杂的问题 好主意
我建议用案例陈述来代替。当您想添加额外的选项时,它使它更具可读性,但更易于维护
switch ($type)
{
case "recent":
$OrderType = "sid DESC";
break;
case "pop":
$OrderType = "counter DESC";
break;
default:
$OrderType = "RAND()";
}
你不需要修改你的代码,它可读性很好。这个问题可能是关于三元运算符的,但我同意,在这种情况下,switch更有意义;我喜欢三元运算符,但有时它们并不适合使用。