Урок 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 →
Комментарии:
Привет Myblaze! Мне не понятно:
1. Что такое ?
2. Почему $counter<=11, именно 11 почему не 10? И где указано сколько раз цикл выполняется?
Привет Myblaze! Мне не понятно:
1. Что такое
?
2. Почему $counter<=11, именно 11 почему не 10? И где указано сколько раз цикл выполняется?
11 и указывает сколько раз циклу выполняться.
myblaze, Привет! Я все понял!
for (сначала создаем переменную и сразу присваиваем значение; теперь ставим условие, 11 значит цикл зациклится пока не ударится об столб 11; теперь переменная счетчик с каждым шагом +3;) {и вся та штука что ты написал} То есть цикл увеличивает переменную с каждым шагом на +3, пока не дойдет до предела тоесть предельное число у нас 9, так как 9+3=12, и условие не выполняется, т.е. цикл выполнился 3 раза
Добрый день!
Например у меня есть таблица с тремя столбцами, такими как id, pid, name. Как мне вытащить все строки name, используя цикл for
Вы написали, что 11 это число повторений и в тоже время это ограничитель, т.е. число до которого будут производиться повторения. Нет ли здесь противоречия?
Денис, 11 было бы числом повторений, если бы шаг был 1 и начальное значение 1. В примере же начальное значение 3, шаг 3, выполнится цикл 3 раза.
Спасибо за разъяснения в комментариях!!! Пока не прочел комменты, не понимал))))
Очень помог спасибо,
понял без разъеснений.
Раньше читал(просто читал),а сейчас я якобы понимаю.
Спасибо за урок.
Будет ли адекватной такая форма записи кода? А то обилие echo мусолит глаза.
<?php
$mnojitel = 5;
echo
"
Variable counter
counter * mnojitel
«;
for ( $counter = 3; $counter <= 11; $counter +=3) {
echo
"
$counter
» . $mnojitel * $counter . »
«;
}
echo «»;
?>
Добрый день!
У меня проблема в том что я написал такой же код как у вас а число у меня не умножается.