[英]How to use ternary operator instead of if-else in PHP
我正在尝试使用三元运算符来缩短代码。
这是我的原始代码:
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
是'recent'
'sid DESC'
$type
是'pop'
'counter DESC'
'RAND()'
一些注意事项:
并且,作为三元运算符的参考,引用PHP手册的Operators部分 :
第三组是三元运算符:
?:
。
应该使用它根据第三个表达式在两个表达式之间进行选择,而不是选择两个语句或执行路径。
用括号括起三元表达式是一个好主意。
我建议改用case语句。 当您要添加其他选项时,它使它更具可读性,但更易于维护
switch ($type)
{
case "recent":
$OrderType = "sid DESC";
break;
case "pop":
$OrderType = "counter DESC";
break;
default:
$OrderType = "RAND()";
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.