Цикл while
Цикл while( условие ) выполняется только в том случае, если условие является истиной (как будто при проверке if( условие )). Очевидно, что при таком способе работы цикла его условие должно изменяться с каждой итерацией, иначе это будет бесконечный цикл. Продемонстрируем использование цикла на практике:<?php
$i = 1;
while( $i <= 3 ){
echo $i;
echo '<br>';
$i++;
}
?>
При выполнении такого кода на экране мы увидим:
1 2 3Как только $i станет равной 4, то произойдёт выход из цикла из-за того, что значение в скобках while( 4 <= 3 ) является ложью.
Обратите внимание, что в циклах принято обозначать переменные, которые изменяются с каждой итерацией, буквами: i, j, k.
Если бы в примере не было строчки $i++;, то цикл выполнялся бы бесконечно, потому что $i никогда бы не стала больше 3.
Цикл for
Теперь разберём более сложный, но популярный цикл for( начальные параметры; условие завершения цикла; действие на каждой итерации ). Этот цикл чаще встречается в проектах, чем while. Он имеет не одно, а сразу три условия. Попробуем переписать предыдущий пример, но используем цикл for:<?php
for( $i = 1; $i <= 3; $i++ ){
echo $i;
echo '<br>';
}
?>
Такой цикл занимает меньше строк, чем цикл с while, потому что включает в скобки for( ) задание начального значения переменной и действия, которое необходимо с ней сделать при новой итерации цикла. Результат выполнения такого цикла будет аналогичен результату из предыдущего примера. При выполнении такого кода на экране мы увидим:
1 2 3В скобках цикла for( ) может стоять несколько переменных, несколько параметров и несколько действий, которые надо сделать с несколькими переменными. Такая теоретическая возможность есть, но на практике она никогда не встречается. Потому что чем легче - тем лучше. Но для образовательных целей приведём пример:
<?php
for( $i = 1, $j = 2; $i <= 3, $j <= 4; $i++, $j++ ){
echo $i . ' - ' . $j . '<br>';
}
?>
Если хотя бы одно из условий $i <= 3, $j <= 4 не будет выполняться, то цикл закончится.