Учебник РНР (перевод Alexandr Pyramidin) Размещено на PHPClub.Net
Назад Глава 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