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