Выход из обращения (в коммутаторе) из условия

#switch-statement

#switch-оператор

Вопрос:

Прежде чем я задал этот вопрос, я попробовал с PHP, и это работает, но мне интересно, считается ли это стандартным.

Итак, вот ситуация, у меня есть огромная инструкция switch / case, в которой каждый случай обрабатывает конкретный HTTP-запрос на основе заголовка запроса. В одном случае я хочу обновить строки в таблице mysql, если переменная имеет значение true, и удалить строки, если она имеет значение false, поэтому я подумал, могу ли я сделать что-то подобное :

 <?php
switch ($request) {
    case 'stuff':
        stuff();
        break;
    case 'thatThing':
        if (!$theVar) {
            deleteTheRows();
            // Break out of the switch statement so that the rest of this case is ignored
            break;
        }
        updateTheRows();
        break;
    default:
        otherStuff();
        break;
}
?>
 

Идея состоит в том, чтобы break; действовать как a return в функции, позволяя мне обрабатывать все исключительные случаи, прежде чем переходить к коду обычной ситуации, не вкладывая его в дополнительную глубину отступа

Ответ №1:

 In one case I want to update rows in a mysql table if a variable is true
and delete rows if it's false
 

Другая причина столь же эффективна…

 <?php
switch ($request) {
    case 'stuff':
        stuff();
        break;
    case 'thatThing':
        if (!$theVar) {
            deleteTheRows();
        } else {
            updateTheRows();
        }
        break;
    default:
        otherStuff();
        break;
}
?>