Вы здесь: Главная > Основы разработки сайта > Основы PHP > 19 урок - Цикл for

Основы PHP

19 урок - Цикл for

Цикл for самый популярный и в тоже время самый сложный цикл в PHP. 

 Синтаксис цикла for :

<?php
for (инициализирующие команды;  условие цикла;  команды после итерации) { 
     тело цикла;
}
?>

Самое интересное, что стоит в круглых скобках:

  1. Инициализирующие команды  - В основном задание счетчика.  Данные команды выполняются только один раз!
  2. Условие цикла – аналог if, проверяет условие на true или false. Если TRUE цикл выполняется.
  3. Команды после итерации – команды выполняются до тех пор, пока условие TRUE.  В основном увеличение счетчика.

По-сути это три части, которые разделяются точкой с запятой. В этих частях можно писать бесконечное число команд.

Пример работы цикла for:

<?php
for ($x=0; $x<10; $x++) {
    echo $x.'<br/>'; // 0123456789
}
?>

  • Инициализирующая команда – Задание счетчика.  $x=0;
  • Условие выполнение цикла – Пока переменная не больше 10. $x<10;
  • Команда после каждой итерации – Увеличение счетчика на 1. $x++

Более сложный пример:

Задача вывести на экран переменную $a от 0 до 5 и переменную $b от 0 до 9 . В теле цикла надо будет выполнить еще одну проверку, поскольку счетчик будет увеличиваться и переменной $a будут присваиваться значения.

<?php
for ($a=0, $b = 0; $a <5 OR $b<10 ; $a++, $b++) {
    if ($a <=5 ) { 
          echo 'Переменная a - '.$a.'<br/>'; 
     } 
     echo 'Переменная b - '.$b.'<br/>'; //  
}
?>

Очень важный момент, как видно из примера команды разделяться запятыми.  Для наглядности я сделал два условие в части "Условие цикла". Можно обойтись одним:

<?php
for ($a=0, $b = 0; $a <5 OR $b<10 ; $a++, $b++) {
    if ($a <=5 ) { 
          echo 'Переменная a - '.$a.'</br>'; 
     } 
     echo 'Переменная b - '.$b.'</br>'; //  
}
?>

А цикла есть альтернативный синтаксис: 

<?php
for(инициализирующие команды; условие цикла; команды после итерации):
     тело цикла;
endfor;
?>

Простой пример:

<?php
for($x=0; $x < 5; $x++):
     echo $x.'<br/>';
endfor;
?>

Если цикл простой, можно укорачивать его до 2 частей:

<?php
for($x=0; ++$x < 5;):
     echo $x.'<br/>';
endfor;
?>

Опять же бойтесь бесконечных циклов. Вот пример такого:

<?php
for($x=0;  ; $x ++ ) {
     echo $x.'<br/>';
}
?>

Почему цикл получился бесконечный? Если посмотреть в часть условие цикла, то там пусто. А цикл for по-умолчанию всегда TRUE!!! 

Цикл можно прервать с помощью условного оператора break; 

Давайте решим неординарную задачу. Создадим бесконечный цикл, но при достижение определенного значение цикл заканчивается.   Пример решения:

<?php
$cont = 20;
for($x=0;  ; $x ++ ) {
     if ($x > $cont) {break;}
     echo $x.'<br/>';
}
?>