Цикл for
самый сложный цикл в PHP.
Он ведёт себя так же, как и в языке C. Синтаксис цикла for
следующий:
<?php
for (выражение_1 ; выражение_2 ; выражение_3){
// блок выполняемых команд
}
Первое выражение (выражение_1) всегда вычисляется только один раз в начале работы цикла.
Второе выражение (выражение_2) всегда вычисляется ПЕРЕД выполнением КАЖДОЙ итерации цикла. Если это выражение вернет true, тогда запустится очередная итерация, если false - выполнение цикла будет прекращено.
Третье выражение (выражение_3) выполняется ПОСЛЕ выполнения КАЖДОЙ итерации.
Каждое из этих выражений может быть пустым, или наоборот, содержать в себе несколько выражений.
К примеру, если выражение_2 будет пустым, то мы получим бесконечный цикл, т.к. у нас нет условия при котором бы цикл остановился ( но у нас конечно же есть другие способы остановить цикл =))) ).
Давайте рассмортим пример и разберем его более подробно:
for ($i = 1; $i <= 10; $i++) {
echo $i;
}
Выражение 1 ($i =1). Высчитывается один раз. В результате этого выражения, в переменную $i мы поместили значение 1.
Перед запуском итерации цикла, PHP проверяет истинно ли Выражение_2 ($i <10).
В этом случае будет возращено true т.к. значение переменной $i явно меньше 10. Т.к. выражение_2 истинно, то интерпритатор PHP запускает выполнение блока команд. В нашем случае на экран будет выведена переменная $i.
ПОСЛЕ выполнения блока комманд, запускается выполнение выражение_3 ($i++) .
$i++ - это операция инкремент, увеличение переменной на 1.
$i = $i+1;
$i +=1;
Все эти три записи равнозначны и выполняют одну и ту же задачу: увеличить переменную на 1.
Выражение_3 увеличивает переменную $i на 1 и $i теперь равно 2.
Первая итерация цикла закончена. Теперь интерпритатор переход ко второй итерации цикла. Выражение_1 уже не запускается(помним, что выражение 1 запускается только один раз), а запускается проверка выражение_2.
Выражение_2 ($i <10). Переменная $i у нас равна 2. 2 явно меньше 10. Запускаем выполнения блока команд. Запускаем выражение_3.
И так жо тех пор, пока выражение_2 не перестанет быть истинным