switch (выражение) { case значение1: блок_команд1; [break;] case значение2: блок_команд2; [break;]
...
default: блок_команд_по_умолчанию; }
Выражение, заданное в операторе switch, вычисляется и сравнивается на равенство по очереди со значениями после ключевых слов case: «значение1», «значение2» и т.д. Если значение совпало, то выполняется код до первого оператора break или до окончания оператора switch. Если ни одно из значений не совпало, то выполняется «блок_команд_по_умолчанию». Таким образом, поведение оператора switch полностью аналогично поведению этого оператора в языке C.
Пример:
<?php $var1 = 100;
switch( $var1 ) { case 99: $var1++; break; case 100: echo "1. Это мы увидим на экране"; break; default: $var1 += 2; }
switch( $var1 ) { case 99: $var1++; break; case 100: echo "2. Это мы увидим на экране"; default: $var1 += 2; echo "3. Это тоже увидим на экране: \$var1 = {$var1}"; } ?>
Циклы
Поддерживаются следующие типы циклов: цикл while, цикл do-while, цикл for, цикл foreach.
Синтаксис циклов:
while (выражение) блок_команд;
do { блок_команд; } while (выражение)
for ([выражение1]; [выражение2]; [выражение3]) блок_команд;
foreach ($массив as $значение) блок_команд;
foreach ($массив as $ключ => $значение) блок_команд;
В каждом из циклов блок команд, если он состоит более чем из одного оператора, заключается в фигурные скобки.
Выражение в циклах while и do-while аналогично выражению в операторе if (т.е. может иметь любой тип, после вычисления его значение преобразуется к логическому типу). Циклы while и do-while работают совершенно аналогично подобным циклам в других языках программирования.
В цикле while первоначально вычисляется выражение; если его значение равно TRUE, то выполняется блок команд; далее снова вычисляется выражение и, если его значение равно TRUE, блок команд выполняется повторно и т.п.
В цикле do-while первоначально выполняется блок команд, далее вычисляется выражение, если оно равно TRUE, то блок выполняется повторно и т.п.
Поведение цикла for полностью аналогично циклу for для языка С. Каждое из выражений «выражение1», «выражение2», «выражение3» является необязательным. Сам цикл for для пояснения его сути можно записать другими конструкциями языка PHP следующим образом:
выражение1;
while (выражение2) { блок_команд; выражение3; }
Примеры работы с циклами
Рассмотрим пример использования циклов while, do-while и for.
Пример:
<?php $i = 1;
while ($i <= 10) { echo "Это {$i}-я итерация цикла while"; $i++; }
do { $n = 10 - $i + 2; echo "Это {$n}-я итерация цикла do-while"; $i--; } while ($i > 1);
В данном примере для каждого элемента массива выполняется оператор echo. Само значение текущего элемента массива находится в переменной $v. Эту переменную мы определили в заголовке цикла после ключевого слова as. Помимо значения элемента массива в цикле нам может понадобиться ключ текущего элемента массива.
Пример демонстрирует, как можно получить доступ к ключу:
foreach($array_1 as $k => $v) { echo "Значение элемента массива {$v}, значение ключа {$k}"; } ?>
В данном примере ключ текущего элемента массива находится в переменной $k. Эту переменную мы определили в заголовке цикла после ключевого слова as, значение элемента теперь будет содержаться в переменной $v, заданной после =>.