Switch. Условные конструкции в PHP. Часть 2.

В первой части статьи про условия в PHP мы разбирались про синтаксис и примеры использования конструкции if…else…. В этой заметке мы продолжим рассматривать управляющие условные конструкции в PHP. Речь здесь пойдет о конструкции ветвлений switch (case). Мы рассмотрим его в сравнении с конcтрукцией if..else, и на примерах разберем случаи, когда выгодней использовать switch вместо if.

Проблема использования IF

Как я уже сказал switch используется для построения условных конструкций. Давайте сначала напишем сложное ветвление с помощью if…else:

				
					<?php 
 $a = 4;
 if ($a == 1) { 
 echo "A = 1"; 
 } 
 elseif ($a == 2){ 
 echo "A = 2"; 
 } 
 elseif ($a == 3){ 
 echo "A = 3"; 
 } 
 elseif ($a == 4){ 
 echo "A = 4"; 
 } 
 elseif ($a == 5){ 
 echo "A = 5"; 
 } 
?>
				
			
Что мы здесь имеем. Переменную $a со значением 4. И кучу условий, которые по очередно сравнивают значение переменной $a сначала с 1, затем с 2 и т.д. до 5. Если в какой то момент условие выполняется, то на экран выводится строка. В нашем случае на экран выведется строка:

A = 4

Громоздкая конструкция не так ли? Лично у меня от нее рябит в глазах…

Использование Switch

В случаях когда значение какого-либо выражения нужно сравнить с фиксированной величиной гораздо выгоднее использовать конструкцию switch.

Синтаксис switch:

				
					switch (выражение) {
    case 'значение 1':
        группа операторов 1;
        break;
    ........................
    case 'значение n':
        группа операторов n;
        break;
    default:
        группа операторов по умолчанию;
        break;
}
				
			

Логика работы как и в предыдущем примере с if. Выражение, которое стоит в switch поочередно (сверху вниз) сравнивается со значениями в case. Если соответствие найдено, то выполняется группа операторов в этой ветке case. Ветка default выполняется в том случае, если выражение не равно ни одному значению из case.

Важно: в этом описание использовано новое для вас ключевик слово break. Это ключевое слово используется для выхода из конструкции наружу (во внешний блок). Если мы уберем break, то после выполнения кода в ветке с соответствующим значением, будут выполняться все ветки, которые расположены ниже. Это типичная ошибка начинающих программистов. Будьте внимательны!

Рассмотрим использование switch на нашем примере:

				
					<?php 
$a = 5; 
switch ($a) { 
 case 1: 
 echo "A = 1";
 break; 
 case 2: 
 echo "A = 2"; 
 break; 
 case 3: 
 echo "A = 3"; 
 break; 
 case 4: 
 echo "A = 4"; 
 break; 
 case 5: 
 echo "A = 5"; 
 break; 
 default: 
 echo "A не равно числам 1,2,3,4 и 5"; 
 break; } 
?>
				
			

Выполните этот код и посмотрите результат выполнения.

Теперь я по мере возможности буду давать небольшие задания по уроку. Эти задания помогут вам отработать и запомнить места, где возможно совершение ошибок при программировании. Также с их помощью вы более полно овладеете темой. Хотелось бы в комментариях услышать ваше мнение насчет этой идеи.

Самостоятельные задания:

  • Измените значение переменной $a так, чтобы попасть в другую ветку и в ветку выполняющуюся по умолчанию (default).
  • Удалите break из кода и посмотрите, как поведет себя код.


На сегодня все.

Свежие записи
Команда RD

Команда RD и RMDIR позволяют удалять как каталоги, так и

Web-Дизайн
help2site
Фильтр «Яндекса» АГС и способы вывода из него сайта

АГС является фильтром, который используется в поисковой системе «Яндекс». Этот фильтр предназначен для того, чтобы снизить фактор стороннего влияния на выдаваемые поисковиком результаты. Благодаря АГС

Windows
help2site
Загрузка Windows с флешки и настройка BIOS

Оглавление Настройка BIOS и загрузка Windows с флешки Процедура загрузки Windows с флешки после записи её на загрузочную USB-флешку достаточно проста. Задача вполне рядовая и

Web-Дизайн
help2site
Операторы PHP

Операторы позволяют выполнять различные действия с переменными, константами и выражениями. Специальные операторы присваивания Наряду с обычным оператором присваивания в PHP существуют комбинированные операторы, которые позволяют

Оборудование
help2site
Почему принтер не печатает? Выясняем причины

Оглавление Что делать, если принтер отказывается нормально печатать Это, как правило, случается в самое неподходящее время — когда вам срочно нужен важный документ, а принтер

Оборудование
help2site
Обзор 4 терабайтного накопителя Western Digital WD4001FAEX

Совсем недавно компания Western Digital разработала и выпустила на рынок новый высокопроизводительный жесткий диск объемом памяти в 4 терабайта. Новый накопитель получил название Western Digital

Windows
help2site
Как исправить ошибки при обновлении Windows 10

Столкнуться с такой проблемой, как ошибки при обновлении Windows 10, приходилось многим пользователям, устанавливающим актуальную версию системы. Притом, что компания Microsoft часто выпускает новые патчи,