PHP поддерживает три вида циклов:
Цикл с предусловием while
Цикл с предусловием while работает по следующим принципам:
- Вычисляется значение логического выражения.
- Если значение истинно, выполняется тело цикла, в противном случае - переходим на следующий за циклом оператор.
Синтаксис цикла с предусловием:
while (логическое_выражение)
инструкция;
В данном случае телом цикла является инструкция. Обычно тело цикла состоит из большого числа операторов. Приведем пример цикла с предусловием while:
<?php
$x=0;
while ($x++<10) echo $x;
// Выводит 12345678910
?>
Цикл с постусловием do while
В отличие от цикла while, этот цикл проверяет значение выражения не до, а после каждого прохода (итерации). Таким образом, тело цикла выполняется хотя бы один раз. Синтаксис цикла с постусловием такой:
do
{
тело_цикла;
}
while (логическое_выражение);
После очередной итерации проверяется, истинно ли логическое_выражение, и, если это так, управление передается вновь на начало цикла, в противном случае цикл обрывается.
Альтернативного синтаксиса для do-while разработчики PHP не предусмотрели (видимо, из-за того, что, в отличие от прикладного программирования, этот цикл довольно редко используется при программировании web-приложений).
Пример скрипта, показывающего работу цикла с постусловием do-while:
<?php
$x
=
1
;
do {
echo
$x
;
} while (
$x
++<
10
);
?>
Цикл со счетчиком for
Цикл со счетчиком используется для выполнения тела цикла определенное число раз. С помощью цикла for можно (и нужно) создавать конструкции, которые будут выполнять действия совсем не такие тривиальные, как простая переборка значения счетчика.
Синтаксис цикла for такой:
for (инициализирующие_команды; условие_цикла; команды_после_итерации) { тело_цикла; }
Цикл for начинает свою работу с выполнения инициализирующих_команд. Данные команды выполняются только один раз. После этого проверяется условие_цикла, если оно истинно (true), то выполняется тело_цикла. После того, как будет выполнен последний оператор тела, выполняются команды_после_итерации. Затем снова проверяется условие_цикла. Если оно истинно (true), выполняется тело_цикла и команды_после_итерации, и.т.д.
<?
php
for
($
x
=
0
;
$
x
<
10
;
$
x
++)
echo
$
x
;
?>