Оператор выбора - SWITCH . . CASE
Среда, 11 августа 2010 г.Рубрика: PHP программирование -> Условные операторы
Метки: case | switch | оператор выбора
Просмотров: 810
Подписаться на комментарии по RSS
Давайте рассмотрим на примере:
Допустим, что у Вас есть переменная хранящая какое-то имя, и Вам нужно
определить какое это имя и если имя подходит, то вывести фамилию для
этого имени
Тогда Вам понадобится конструкция условия if..else, вот небольшой пример
к этой задаче, где есть два имени и мы проверяем их на нужные нам имена
и если из них не одно не подходит то выводим об этом cообщение:
<?php
$name = "Виктор"; /* Наше имя */
if ( $name == "Виктор" ) { /* Проверяем верно ли имя */
echo "Федотов"; /* Выводим фамилию к этому имени */
}
if ( $name == "Иван" ) { /* Ещё одно условие, на второе имя */
echo "Иванов"; /* Выводим фамилию к этому имени */
}
if ( $name !== "Виктор" and $name !== "Иван" ) { /* Если имена не подходят */
echo "Неизвестное имя"; /* Выводим, что имя не известное */
}
В этом примере мы сравнивали значение переменной $name с введёнными
нами именами, но код получился довольно большим, именно для таких вот
сравнений и придумали конструкцию switch case
Сначала в этой конструкции указываем обрабатываемую переменную, после
вписываем данные для сравнения, и в конце если все наши имена не подошли
выводим альтернативное сообщение о том, что такого имени нет, вот код с
объяснением:
<?php
$name = "Виктор"; /* Заносим в переменную имя */
switch ( $name ) { /* При помощи команды switch выбираем обрабатываемую переменную, в нашем случае $name, и открываем фигурные скобки */
case "Виктор": /* При помощи команды case выписываем в кавычки имя для сравнения и после ставим двоеточие, после которого будет выполнятся запланированное действие на случай совпадения имён */
echo "Федотов"; /* Выводим фамилию для этого имени */
break; /* Если мы выписали все нужные нам выполняемые действия на случай совпадения имён, то закрываем */
case "Иван": /* При помощи команды case выписываем в кавычки имя для сравнения и после ставим двоеточие, после которого будет выполнятся запланированное действие на случай совпадения имён */
echo "Иванов"; /* Выводим фамилию для этого имени */
break; /* Если мы выписали все нужные нам выполняемые действия на случай совпадения имён, то закрываем */
default: /* Эта команда пишется на случай, если ни одно из имён нам не подошло */
echo "Неизвестное имя"; /* Выводим фамилию для этого имени */
} /* Завершаем проверку, и завершать default не обязательно, так как она идёт последней специальной командой, то и закрывать её не нужно */
Из этого примера видно, что эта конструкция пишется так:
При помощи команды switch определяем проверяемую переменную, и
проверяемую переменную нужно писать в скобках
После ставим фигурные скобки, в которых все действия и будут
заключаться, так же как и в условиях
Дальше при помощи команды case будем сравнивать значение команды case и
значение переменной $name, и в конце выполняемых действий на случай
совпадения, даём понять что это сравнение закрыто при помощи команды
break;
Сравниваем второе имя, и после если хотим на случай, если вдруг не
подошло ни одно имя, выводим сообщение о том что имя не подошло при
помоши команды default которую завершать не нужно
А если Вы хотите чтобы у Вас сравнивались не имена, а числа, то просто в
после слова case Вы пишите не имена в кавычках, а числа без кавычек.


Спасибо. На этом примере понятны преимущества конструкции SWITCH . . CASE перед if..else.