Урок 13. PHP — Цикл For

Еще один вид цикла с которым мы сегодня познакомимся, это цикл for. Он, как и цикл while нужен довольно часто. Например, при работе с массивами. Но синтаксис его немного отличается. Не пугайтесь, здесь все так же просто, достаточно лишь понять смысл.

Для начала разберем конструкцию на словах, чтобы было проще работать с кодом:

  • определяем переменную-счетчик с некоторым начальным значением и также задаем конечное значение;
  • проверяем, укладывается ли переменная в заданные рамки в текущий момент;
  • если да, то выполняем тело цикла;
  • увеличение переменной-счетчика в конце каждой итерации цикла происходит автоматически, в отличие от цикла while.

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

Простой пример цикла For

Возьмем простой пример из урока с циклом while, и посмотрим, как это может быть реализовано в цикле for. Основная структура цикла выглядит следующим образом:

for ( объявление переменной и присвоение начального значения; условие выполнения цикла; увеличение счетчика){
	//тело цикла;
}

Обратите внимание, что все манипуляции с переменной-счетчиком происходят при объявлении цикла. Каждое действие происходит через точку с запятой: инициализируем счетчик и присваиваем начальное значение, записываем условие, а затем операцию приращения счетчика. Точка с запятой необходима, потому что это отдельные выражения. Однако обратите внимание, что точка с запятой не требуется после последнего действия, то есть приращения (сразу закрываем скобку без точки с запятой).

В качестве примера выведем таблицу с переменной и той же переменной, но умноженной на 5.

$mnojitel = 5; 
echo "<table border=\"1\" align=\"center\">";
echo "<tr><th>Переменная counter</th>";
echo "<th>counter * mnojitel</th></tr>";
for ( $counter = 3; $counter <= 11; $counter +=3) {
	echo "<tr><td>";
	echo $counter;
	echo "</td><td>";
	echo $mnojitel * $counter;
	echo "</td></tr>";
}
echo "</table>";

Вот что мы получим:

Переменная counter counter * mnojitel
3 15
6 30
9 45

Теперь давайте разберем, что же мы сделали при объявлении нашего цикла. Перво-наперво определили переменную $counter = 3 и сразу же присвоили ей начальное значение 3. После этого, через точку с запятой, задали условие, при удовлетворении которого, цикл выполняется: $counter <= 11, то есть если переменная меньше или равна 11, то цикл выполняется. Ну и, наконец, последний шаг это шаг цикла - увеличение счетчика. В нашем случае: $counter +=3 увеличение с каждым шагом (итерацией) на 3. Надеюсь все понятно. Экспериментируйте, а если что-то не получится, то спрашивайте в комментариях, поможем!

Цикл While | Содержание | Цикл Foreach

Комментарии:

  1. Stas — 24.08.2013 00:15

    Привет Myblaze! Мне не понятно:
    1. Что такое ?
    2. Почему $counter<=11, именно 11 почему не 10? И где указано сколько раз цикл выполняется?

  2. Stas — 24.08.2013 00:16

    Привет Myblaze! Мне не понятно:
    1. Что такое ?
    2. Почему $counter<=11, именно 11 почему не 10? И где указано сколько раз цикл выполняется?

  3. myblaze 25.08.2013 07:11

    11 и указывает сколько раз циклу выполняться.

  4. Stas — 01.09.2013 00:26

    myblaze, Привет! Я все понял!
    for (сначала создаем переменную и сразу присваиваем значение; теперь ставим условие, 11 значит цикл зациклится пока не ударится об столб 11; теперь переменная счетчик с каждым шагом +3;) {и вся та штука что ты написал} То есть цикл увеличивает переменную с каждым шагом на +3, пока не дойдет до предела тоесть предельное число у нас 9, так как 9+3=12, и условие не выполняется, т.е. цикл выполнился 3 раза

  5. ShoO — 26.09.2013 08:15

    Добрый день!
    Например у меня есть таблица с тремя столбцами, такими как id, pid, name. Как мне вытащить все строки name, используя цикл for

  6. Денис — 23.02.2014 11:34

    Вы написали, что 11 это число повторений и в тоже время это ограничитель, т.е. число до которого будут производиться повторения. Нет ли здесь противоречия?

  7. myblaze 23.02.2014 18:16

    Денис, 11 было бы числом повторений, если бы шаг был 1 и начальное значение 1. В примере же начальное значение 3, шаг 3, выполнится цикл 3 раза.

  8. Алик — 03.08.2014 16:39

    Спасибо за разъяснения в комментариях!!! Пока не прочел комменты, не понимал))))

  9. BPV — 02.11.2015 06:19

    Очень помог спасибо,
    понял без разъеснений.
    Раньше читал(просто читал),а сейчас я якобы понимаю.

  10. Александр — 05.03.2017 20:54

    Спасибо за урок.
    Будет ли адекватной такая форма записи кода? А то обилие echo мусолит глаза.

    <?php
    $mnojitel = 5;
    echo
    "

    Variable counter
    counter * mnojitel
    «;
    for ( $counter = 3; $counter <= 11; $counter +=3) {
    echo
    "
    $counter
    » . $mnojitel * $counter . »
    «;
    }
    echo «»;
    ?>

  11. Kostya — 23.10.2020 17:04

    Добрый день!
    У меня проблема в том что я написал такой же код как у вас а число у меня не умножается.

Добавить комментарий