Циклы в PHP

На втором месте по частоте использования, после условного оператора, находятся циклы. Цикл позволяет повторить определенное (и даже не определенное — когда работа цикла зависит от условия) количество раз какие-нибудь операторы. Данные операторы называются телом цикла — они будут «крутиться» в цикле. Проход цикла называется итерацией.

Как и C, PHP поддерживает три вида циклов:

— Цикл с предусловием (while).- Цикл с постусловием (do-while).

— Цикл со счетчиком (for).

Цикл с предусловием While

Принцип работы цикла с предусловием:

— Вычисляется значение логического выражения.
— Если значение истинно, выполняется тело цикла, в противном случае — переходим на следующий за циклом оператор.

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

while  ( логическое выражение )
инструкция;

В данном случае телом цикла является «инструкция». Обычно тело цикла состоит из большего числа операторов. Простейший пример цикла:

Данная программа выведет строку 12345678910. Обратите внимание на последовательность выполнения операций условия $i++ < 10. Сначала проверяется условие, а только потом увеличивается значение переменной. Если же мы поставим операцию инкремента перед переменной (++$i

Данный сценарий выведет строку 0123456789. Нам же нужна строка 12345678910, поэтому нужно обеспечить увеличение счетчика при проверке логического выражения:

Welcome home! Hello

Вложенные циклы

Каждый цикл может содержать в своем теле несколько циклов. Каждый из этих циклов называется вложенным циклом. Вкладываться может неограниченное число циклов, причем все они могут быть разного типа — while, do или for. Рассмотрим следующий код:

for ($1=0; $К10; $I++) {echo «$I\n»;for ($J=0; $J

В этом примере после второй итерации работа цикла будет прервана и программа выведет строки:

Итерация 1
Итерация 2

Если же вместо оператора break использовать оператор continue, будет прервана работа только третьей итерации и мы получим вывод:

Итерация 1Итерация 2Итерация 4Итерация 5Итерация 6Итерация 7Итерация 8Итерация 9

Итерация 10

Предположим, что у нас есть вложенные циклы, например,

for (…) {   for (…)   {       for (…)   }

            }

Нам нужно прервать работу определенного цикла, например, первого. Тогда как оператор break находится в теле третьего. В этом случае можно передать функции break параметр — номер цикла, например, break(l) Нумерация циклов начинается с единицы.

Цикл перебора массивов foreach

В версии PHP4 появился еще один вид цикла — foreach. Данный цикл предназначен специально для перебора массивов.

Синтаксис данного цикла таков:

foreach (массив as $ключ=>$значение) операторы;

Операторы, содержащиеся в теле цикла, будут выполнены для каждого элемента массива. Переменная $ключ будет содержать имя ключа элемента, а переменная $ значение — значение элемента.

Следующий пример отобразит значение массива SGLOBALS, содержащего глобальные переменные (будут выведены как имена переменных, так и их значения):

Примечание.
Массив — это упорядоченный набор данных. Каждый элемент массива имеет индекс или ключ. Ключ служит для однозначной идентификации элемента массива. В одном массиве не может быть двух элементов с одинаковыми ключами.

В PHP есть один очень полезный стандартный массив $GLOBALS. Ключом данного массива является имя переменной, а значением элемента массива — значение переменной. Об этом важном массиве мы еще не раз поговорим в этой книге.