Как выйти из if-блока?

255
30 ноября 2021, 11:10

При выполнении большого количества проверок, образуется много условий if-else. Например:

if(условие) {
  // ...
} elseif(условие) {
  // ...
} else {
  // Всё хорошо, идем дальше
  if(условие) {
    // ...
  } else {
    // Всё хорошо, идем дальше
    // ...
  }
}

Можно ли это как-то сократить?

Например, если бы можно было выходить из блока if, можно было бы не писать else. Но вроде бы оператор break такого не позволяет.

Подскажите, что можно сделать?

Answer 1

Вынесите ваш блок проверок в отдельную функцию и используйте return

Или поднимайте исключения

Answer 2

Не знаю, как отнесутся к этому адепты правильного кода на php, но можно использовать ... цикл:

foreach([1] as $_not_used) {
    if(условие) {
        ...
        if(условие) {
            break;
        }
        ....
    }
    if($a==4) { break; }
 }

Кроме того, если условия подходящие, возможно использование конструкции switch. А так же вложенных конструкций циклов и switch с указанием оператору break количества уровней вложенности, из которого выходить.

READ ALSO
обращение к div'у

обращение к div'у

файл navphp

89
mysql | Долго выполняется запрос

mysql | Долго выполняется запрос

Подскажите плиз: Запрос выполняется около 5 минутВ таблице pilot_3_intermediate 132040183 записей

77
Как правильно выполнить запрос перед закртием/загрузкой другой страницы?

Как правильно выполнить запрос перед закртием/загрузкой другой страницы?

Перед переходом на другую страницу или когда пользователь принудительно закрывает вкладку браузера необходим передать на сервер некоторые...

71
Добавить элемент в массив, после определенного номера JS

Добавить элемент в массив, после определенного номера JS

Всем приветКак можно добавить элемент в массив, после определенного номера

111