Язык программирования PHP | страница 24




>switch (выражение или переменная){

>case значение1:

> блок_действий1

>break;

>case значение2:

> блок_действий2

>break;

>...

>default:

> блок_действий_по_умолчанию

>}


В отличие от if, здесь значение выражения не приводится к логическому типу, а просто сравнивается со значениями, перечисленными после ключевых слов case (значение1, значение 2 и т.д.). Если значение выражения совпало с каким-то вариантом, то выполняется соответствующий блок_действий – от двоеточия после совпавшего значения до конца switch или до первого оператора break, если таковой найдется. Если значение выражения не совпало ни с одним из вариантов, то выполняются действия по умолчанию (блок_действий_по_умолчанию), находящиеся после ключевого слова default. Выражение в switch вычисляется только один раз, а в операторе elseif – каждый раз, поэтому, если выражение достаточно сложное, то switch работает быстрее.


Пример 3.3 можно переписать с использованием switch следующим образом:


>

>$names = array("Иван","Петр","Семен");

>switch ($names[0]){

>case "Иван":

> echo "Привет, Ваня!";

>break;

>case "Петр":

> echo "Привет, Петя!";

>break;

>case "Семен":

> echo "Привет, Сеня!";

>break;

>default:

> echo "Привет, $names[0].

> А как Вас зовут?";

>}

>?>


Если в этом примере опустить оператор break, например, в case "Петр":, то, если переменная окажется равной строке "Петр", после вывода на экран сообщения "Привет, Петя!" программа пойдет дальше и выведет также сообщение "Привет, Сеня!" и только потом, встретив break, продолжит свое выполнение за пределами switch.


Для конструкции switch, как и для if, возможен альтернативный синтаксис, где открывающая switch фигурная скобка заменяется двоеточием, а закрывающая – endswitch; соответственно.


Циклы


В PHP существует несколько конструкций, позволяющих выполнять повторяющиеся действия в зависимости от условия. Это циклы while, do..while, foreach и for. Рассмотрим их более подробно.


while


Структура:


>while (выражение) { блок_выполнения }


либо


>while (выражение): блок_выполнения endwhile;


while – простой цикл. Он предписывает PHP выполнять команды блока_выполнения до тех пор, пока выражение вычисляется как True (здесь, как и в if, происходит приведение выражения к логическому типу). Значение выражения проверяется каждый раз в начале цикла, так что, даже если его значение изменилось в процессе выполнения блока_выполнения, цикл не будет остановлен до конца итерации (т.е. пока все команды блока_выполнения не будут исполнены).