Я пытаюсь сократить свой код с помощью тернарного оператора.
Это мой оригинальный код:
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 :
Третья группа – тернарный оператор:
?:
.
Он должен использоваться для выбора между двумя выражениями в зависимости от третьего, а не для выбора двух предложений или путей выполнения.
Ближайшие тернарные выражения с круглыми скобками – очень хорошая идея.
Вместо этого я бы предложил использовать аргумент case. это делает его более читаемым, но более удобным для обслуживания, когда вы хотите добавить дополнительные параметры
switch ($type) { case "recent": $OrderType = "sid DESC"; break; case "pop": $OrderType = "counter DESC"; break; default: $OrderType = "RAND()"; }