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