Уроки 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 ";
}
?>

Tags: php

Recent Posts

Признаки качественного хостинга: выбираем с умом

Хостингом называется специальное пространство, предназначенное для хранения файлов веб-сайта. Клиентам доступны разные типы размещения и… Read More

30/09/2020

Как выучить немецкий язык легко и весело? С помощью Beste Freunde!

Немецкий часто считается сложным языком. Да, немецкая лексика имеет «тяжелый» характер. Да, есть действительно очень… Read More

27/09/2020

Отопление и горячая вода – когда нужно, а не когда соизволят включить

Тепло в доме и горячая вода в любое время для многих жителей многоквартирных и частных… Read More

19/09/2020

Инструкция по скачиванию видео с сервиса TikTok (бесплатно и без watermark)

Если вы еще не слышали о TikTok, тогда рекомендуем вам сначала ознакомиться с этим кратким… Read More

17/09/2020

Что есть в бюджетном ноутбуке – на какие характеристики рассчитывать?

Прошли те времена, когда приличный ноутбук стоил от 1000 долларов. Сегодня можно купить довольно неплохой… Read More

16/09/2020

Что лучше – цифровое телевидение Т2 или интернет-телевидение?

Современную жизнь невозможно представить без телевидения. Оно позволяет узнавать о событиях в Украине и мире,… Read More

02/09/2020