Оглавление

Выражение switch

Конструкция if позволяет разместить произвольное количество операторов elseif, но такая структура очень запутанная. Выражение switch имеет более компактный вид и является альтернативой условному выражению с множеством ветвлений. В примере ниже выражение switch проверяет значение $name на принадлежность к одному из списков:

switch ($name) {
   case "Дима": 
   case "Таия":
      echo "Привет, $name, ты мой друг" ;
break; 
case "Адольф": 
case "Саддам":
   echo "Ты мне не друг, $name";
   break; 
default:
   echo "Я тебя не знаю, $name";
}

 

Каждое case-выражение задает значение, для которого будет выполняться соответствующий код. Если присвоить имя переменной $name и запустить сценарий, на экране браузера появится приветствие другу, если ваше имя Дима или Таня. Но если вы Адольф или Саддам, вас опознают как недруга. С другим именем программа не узнает вас.

 

В операторе switch может быть любое количество case-выражений. Если тестируемое значение (в нашем случае переменная $name) соответствует одному из них, весь РНР-код после выражения case будет выполняться до первой команды break.

 

Остановка выполнения
Оператор break играет существенную роль в операторе switch. Когда выполняется условие оператора case, PHP-код будет выполняться дальше, включая следующее выражение case, которое будет проверять другое значение. В отдельных случаях такое поведение может понадобиться, но обычно ожидается другое. Поэтому нужно ставить оператор break после каждого выражения case.

 

При других значениях $name выполняется блок кода выражения default. Как и else, default является необязательным и выполняется, только если выше не обнаружено ничего подходящего.

Комментарии принадлежат их авторам. Мы не несем ответственности за их содержание.
Отправитель Нити