Оператор выбора (переключатель) в PHP switch – case.


Для того, чтобы выбрать определенное действие в зависимости от значения переменной, в PHP используется условный оператор (if – else). Однако, нередки случаи, когда условий достаточно много, и скрипт становится громоздким и нечитабельным. В таких ситуациях целесообразнее использовать оператор выбора switch, который называют также «переключателем». switch принимает в качестве параметра определенное значение и в зависимости от него выбирает нужное действие.

Конструкция выглядит следующим образом:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
switch ($x)
{
   case value1:
     //здесь код, который будет выполнен, если $x = value1
   break;
 
   case value2:
    //здесь код, который будет выполнен, если $x = value2
   break;
 
   default:
    //здесь код, который будет выполнен, если $x не равно ни value1, ни value2
}
?>

Существует и альтернативный способ написания данной конструкции:

1
2
3
4
5
6
7
8
9
10
11
12
<?php
switch ($x):
   case value1:
   //здесь код
   break;
   case value2:
   //здесь код
   break;
   default:
   //здесь код
endswitch;
?>

Как видно из примеров, внутри конструкции switch располагается несколько блоков case, содержащих одно из уникальных значений, которое может иметь параметр $x. Если будет найдено совпадение с одним из значений какого-либо блока case, то будет выполнен код внутри данного блока. Если же ни один из блоков case «не подойдет», то выполнится код внутри блока default.

Блок default не является обязательным.

Обратите внимание, что каждый блок case должен заканчиваться оператором break, который прекращает дальнейшее выполнение конструкции switch. Если вы забудете вставить break в блоки case, то сработают все эти блоки, и вы получите результат, которого не ожидали.

В качестве входного параметра $x может быть как строковое значение, так и числовое. Рассмотрим примеры.

Пример 1.

1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
$color = "красный";
switch ($color):
   case "зеленый":
     echo "Это зеленый цвет";
     break;
   case "красный":
     echo "Это красный цвет";
     break;
   default:
     echo "Цвет не определен";
endswitch;
?>

Этот скрипт выведет сообщение «Это красный цвет».

Пример 2.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
$num = 3;
switch ($num):
   case 1:
     echo "Один";
     break;
   case 2:
     echo "Два";
     break;
   case 3:
     echo "Три";
     break;  
   default:
     echo "Число не определено";
endswitch;
?>

Будет выведено «Три».





Другие посты

Категория: PHP-скрипты

Оставить комментарий