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