Учебник РНР
Назад Глава 11. Структуры Управления Вперёд

for

Циклы for это самые сложные циклы PHP. Они ведут себя так же, как их аналоги из C.
Синтаксис цикла for таков:

for (expr1; expr2; expr3) statement

Первое выражение ( expr1 ) вычисляется (выполняется) один раз и безусловно в начале выполнения цикла.

При начале каждой итерации вычисляется expr2 . Если оно вычисляется в TRUE , цикл продолжается и выполняется вложенный (-ые) оператор (-ы). Если оно вычисляется в FALSE , выполнение цикла прекращается.

В конце каждой итерации вычисляется (выполняется) expr3 .

Каждое из выражений может быть пустым. Пустое expr2 означает, что цикл должен выполняться бесконечно (PHP неявно предполагает, что это условие TRUE , как в C). Это может быть не так бессмысленно, как может показаться, поскольку часто бывает необходимо закончить цикл оператором break вместо использования проверки выражения-условия цикла for.

Рассмотрим следующие примеры. Все они выводят числа от 1 до 10:

/* пример 1 */ for ($i = 1; $i <= 10; $i++) { print $i; } /* пример 2 */ for ($i = 1;;$i++) { if ($i > 10) { break; } print $i; } /* пример 3 */ $i = 1; for (;;) { if ($i > 10) { break; } print $i; $i++; } /* пример 4 */ for ($i = 1; $i <= 10; print $i, $i++);

Конечно, первый пример кажется самым привлекательным (или, возможно, четвёртый), но вы можете обнаружить, что возможность использовать пустые выражения в циклах for оказывается удобной во многих ситуациях.

PHP также поддерживает "синтаксис colon/с двоеточием" для циклов for.

for (expr1; expr2; expr3): statement; ...; endfor;

В других языках имеется оператор foreach для прохода по элементам массивов или хэшей. В PHP 3 такой конструкции нет; а в PHP 4 - есть (см. foreach). В PHP 3 вы может комбинировать while с функциями list() и each() для получения того же эффекта. См. примеры в документации по этим функциям.


Назад Оглавление Вперёд
do..while Вверх foreach