Циклы 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() для получения того же эффекта. См. примеры в документации по этим функциям.
|