Я пытаюсь сократить свой код с помощью тернарного оператора.
Это мой оригинальный код:
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()"; }