Уроки PHP – Циклы
В этом уроке мы рассмотрим циклы в PHP, а также примеры кода их использования.
Цикл в PHP – это управляющая конструкция, которая призвана выполнять блок кода несколько раз. Это означает, что вам не нужно многократно копировать и вставлять код в файл, достаточно только использовать правильную инструкцию цикла.
Пример кода без цикла:
<?php echo " 1 "; echo " 2 "; echo " 3 "; echo " 4 "; echo " 5 "; echo " 6 "; echo " 7 "; ?>
А с циклом for
это будет выглядеть так:
<?php for ($i = 1; $i <= 7; $i++){ echo " $i "; } ?>
Результат (вывод) кода в обоих примерах будет одинаков:
1 2 3 4 5 6 7
Как вы видите, использование цикла намного сокращает объем кода. Циклы короче и их легче понимать. Кроме того, в большинстве случаев во время кодирования вы не будете знать, сколько раз необходимо выполнять код в блоке.
Операторы цикла в PHP
Теперь давайте посмотрим, какие есть операторы цикла в PHP:
- цикл
while
- цикл
do ... while
- цикл
for
- цикл
foreach
1. PHP цикл while
Вероятно, это самый простой цикл в PHP. Его синтаксис довольно прост:
while (условие) { // блок кода }
Блок кода будет выполняться до тех пор, пока условие будет истинным. Реализация нашего первого примера с циклом while
будет выглядеть так:
<?php $i = 1; while ($i <= 7) { echo " $i "; $i++; } ?>
Результат будет точно таким же, как и в предыдущих примерах. Однако, если вы установите для переменной итератора $i
значение 10 ($i = 10
), тогда ничего не будет выводиться, поскольку условие не будет выполняться. А если же вы забудете добавить итератору автоинкремент (увеличение на единицу после каждой итерации), это приведет к бесконечному выполнению цикла, поскольку условие никогда не изменится, и оно всегда будет истинным. Будьте внимательны с такими случаями.
2. PHP цикл do while
Этот вариант цикла очень похож на предыдущий цикл while
, но он имеет одно важное отличие. С циклом do while
блок кода будет выполнен хотя бы один раз. Это связано с тем, что в случае цикла do while
PHP проверяет условие только после первой итерации. Это хорошо видно из синтаксиса:
<?php do { //блок кода } while (условие) ?>
А кроме этого данный цикл не сильно отличается от цикла while
. Ниже пример того, как использовать цикл do while
:
<?php $i = 1; do { echo " $i "; $i++; } while ($i <= 7) ?>
3. PHP цикл for
Цикл for
– это самый сложный цикл в PHP, но он также и наиболее часто используется. При использовании цикла for
вы выполняете инициализацию переменной цикла, делаете проверку условия, а затем обновление переменной цикла и все в одной строке. Синтаксис цикла for
следующий:
<?php for ( выражение1; условие; выражение2 ) { // блок кода } ?>
Этот синтаксис требует немного больше объяснения.
выражение1
содержит часть инициализации цикла. Здесь вы можете установить переменную цикла, например, так$i = 1
.условие
– эта часть содержит проверку какого-то условия. Вы можете написать здесь условие, и оно будет проверяться перед каждой итерацией. Это означает, что может случиться так, что блок кода вообще не будет выполнен.- В коде
выражение2
указывается информация для обновления переменной цикла.
Пример использования цикла for
выглядит так:
<?php for($i = 1; $i <= 7; $i++) { echo " $i "; } ?>
Каждый элемент может быть пустым или содержать несколько выражений, которые разделяются запятыми. Используя этот подход, приведенный выше код можно сделать еще меньше. Однако поддерживать такой код немного сложнее:
<?php for( $i = 1, $a = 0; $i <= 7; print " $i ", $i++); ?>
4. PHP цикл foreach
Последняя структура цикла в PHP – это foreach
. Это специальный цикл, поскольку его можно использовать только для массивов. Назначение цикла foreach
– выполнить итерацию по каждому элементу массива. Если вы попытаетесь использовать его с обычной переменной, вы получите ошибку.
Синтаксис цикла foreach
выглядит так:
<?php foreach (array as $value) { // блок кода } ?>
Он означает, что при каждой итерации фактическое значение массива будет копироваться в переменную $value
, и вы можете использовать это значение в блоке кода. Итак, рассмотрим пример кода для данного цикла:
<?php // массив данных $firstList = array(1, 2, 3, 4, 5, 6, 7); // перебираем каждый элемент массива циклом foreach foreach ($firstList as $value) { echo " $value "; } ?>
Существует альтернативный синтаксис цикла foreach
для обработки ассоциативных массивов. Вы можете использовать его, если хотите знать не только фактическое значение элемента, но и ключ. Синтаксис цикла foreach
для ассоциативных массивов:
<?php foreach (array as $key => $value) { // блок кода } ?>
В этом случае вы можете использовать обе информации (ключ и значение) в своем блоке кода следующим образом:
<?php // массив данных $firstList = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5, 'f' => 6, 'g' => 7); // перебираем каждый элемент массива циклом foreach foreach ($firstList as $key => $value) { echo " $key-$value "; } ?>