Цикл for
Проверяет условие перед каждой итерацией, есть возможность задать дополнительные настройки:
<?
$fruits = array("Яблоко", "Апельсин", "Слива");
for ($i = 0; $i < count($fruits); $i++) {
echo $fruits; //выведет массив
echo $fruits[$i]; //выведет значение массива
echo $i; //номер итерации
Цикл for имеет следующее формальное определение:
for (инициализация_счетчика; условие; изменение_счетчика)
{
// действия
}
Рассмотрим стандартный цикл for
:
<?
for ($i = 1; $i < 10; $i++){
echo "Квадрат числа $i равен " . $i * $i . "<br/>";
}
Первая часть объявления цикла - $i = 1
- создает и инициализирует счетчик - переменную i
. И перед выполнением цикла его значение будет равно 1
. По сути это то же самое, что и объявление переменной.
Вторая часть - $i < 10;
- условие, при котором будет выполняться цикл. В данном случае цикл будет выполняться, пока $i
не достигнет 10
.
Третья часть - $i++
- изменение счетчика на единицу. Опять же нам необязательно увеличивать на единицу. Можно уменьшать: $i--
. Или, например, увеличить не на 1, на 3: $i +=3
.
В итоге блок цикла сработает 9
раз, пока значение $i
не станет равным 10
. И каждый раз это значение будет увеличиваться на 1
. Каждое отдельное повторение цикла называется итерацией. Таким образом, в данном случае произойдет 9
итераций.
В итоге браузер отобразит нам следующий результат:
Квадрат числа 1 равен 1
Квадрат числа 2 равен 4
Квадрат числа 3 равен 9
Квадрат числа 4 равен 16
Квадрат числа 5 равен 25
Квадрат числа 6 равен 36
Квадрат числа 7 равен 49
Квадрат числа 8 равен 64
Квадрат числа 9 равен 81
Объявление цикла for
может опускать отдельный части. Например, опустить определение счетчика (он может быть определен вне цикла):
$i = 5;
for (; $i < 10; $i++){
echo $i;
}
Можно опустить изменение значения счетчика и изменять его внутри цикла:
$i = 0;
for (; $i < 10;){
echo $i;
$i += 2;
}
В данном случае в цикле на каждой итерации переменная $i
увеличивает значение на 2
. Соответственно мы получим следующий результат:
02468
Также можно в объявлении цикла определять и использовать сразу несколько переменных:
for ($i =1, $j=1; $i + $j < 10; $i++, $j+=2){
echo "$i + $j = " . $i + $j . "<br>";
}
В данном случае в объявлении цикла определяются две переменных: $i
и $j
. При каждой итерации переменная $i
увеличивается на 1
, а $j
- на 2
. При этом цикл продолжается, пока сумма двух переменных не достигнет 10
:
1 + 1 = 2
2 + 3 = 5
3 + 5 = 8
Также можно применять альтернативный синтаксис, при котором вместо открывающей фигурной скобки ставится двоеточие, а вместо закрывающей фигурной скобки - ключевое слово endfor
:
for ($i = 1; $i < 10; $i++):
echo "Квадрат числа $i равен " . $i * $i . "<br/>";
endfor;