Работа оператора switch в PHP

331
31 августа 2017, 21:17

Изучаю PHP, добрался до оператора switch, пересмотрел множество примеров, но так и не понял как можно с помощью этого оператора реализовать подобное:

<?php
$speed = 90;
$limit = 80;
if ($speed > $limit) {
echo "Превышаем";
}
elseif ($speed < $limit) {
echo "Скорость в норме";
}
elseif ($speed == $limit) {
echo "Ты на грани";
}
else echo "Введи нормальную скорость";
?>

Вопрос в нагрузку, как (и возможно ли) подобное реализовать с помощью тернарного оператора? Заранее спасибо за ответы!

Answer 1
switch(true){
    case $speed > $limit:
        echo "Превышаем";
    break;
    case $speed < $limit:
        echo "Скорость в норме";
    break;
    case $speed == $limit:
        echo "Ты на грани";
    break;
    default:
        echo "Введи нормальную скорость";
    break;
}
Answer 2

Если в кейсе стоит только одна команда, то классическое применение свитча в пхп (сравнение переменной с константой) обычно не имеет смысла, поскольку проще и удобнее выбрать значение из заранее определенного массива.

"Подобное" тому что написано в вопросе реализовывать на свитче не нужно. Получится больше писанины, чем с прстыми ифами.

Ну и если говорить о совсем конкретном случае, то он также также решается с помощью массива и какой-то матери.

$messages = [
    -1 => "Скорость в норме",
     0 =>  "Ты на грани",
     1 => "Превышаем",
    ];
echo $messages[$speed <=> $limit];
READ ALSO
Есть ли разница при SELECT * или SELECT `some_column` в PHP

Есть ли разница при SELECT * или SELECT `some_column` в PHP

Интересует насколько это влияет на производительность запроса в PHP

284
Зависимый список категорий WordPress

Зависимый список категорий WordPress

Подскажите, пожалуйста, новичкуКак можно связать два выпадающих списка категорий WordPress?

308