foreach

(PHP 4, PHP 5, PHP 7, PHP 8)

Мовна конструкція foreach пропонує найпростіший спосіб перебору масивів. Конструкція foreach працює тільки з масивами та об'єктами, і буде видавати помилку при спробі використовувати її зі змінними інших типів даних або неініціалізованими змінними. Розробнику доступні два види синтаксису:

foreach (iterable_expression as $value)
    statement
foreach (iterable_expression as $key => $value)
    statement

Перша форма обходить доступні для перебору дані, задані виразом iterable_expression. На кожній ітерації значення поточного елемента надається змінною $value

Друга форма додатково присвоюватиме ключ поточного елемента змінної $key на кожній ітерації.

Обратите внимание, что конструкцияforeach не змінює внутрішній покажчик масиву, з яким, наприклад, працюють функції current() і key()

Разработчику доступнаналаштування ітерації об'єктів

Щоб безпосередньо змінювати елементи масиву всередині циклу, перед змінною $value вказують знак &. Тоді значення буде надано за посиланням

Loading...

Увага

Посилання змінної $value на останній елемент масиву залишиться навіть після закінчення циклу foreach. Рекомендовано знищувати її мовною конструкцією unset(). В іншому випадку розробник зіткнеться з такою поведінкою:

Loading...

Дозволено перебирати значення константного масиву за посиланням:

Loading...

Зауваження :

Мовна конструкція foreach не підтримує придушення повідомлень про помилки через оператора @

Ще приклади, що показують роботу конструкції:

Loading...

Розпакування вкладених масивів мовною конструкцією list()

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

Доступний перебір масиву масивів та розпакування вкладеного масиву в змінні циклу шляхом передачі конструкції list()в качестве значения.

НаПриклад:

Loading...

Результат виконання наведеного прикладу:

A: 1; B: 2
A: 3; B: 4

У конструкцію list() дозволено передавати меншу кількість елементів, ніж міститься у вкладеному масиві, тоді значення масиву, що залишилися, будуть проігноровані:

Loading...

Результат виконання наведеного прикладу:

1
3

Якщо масив містить недостатньо елементів для заповнення змінних у конструкції list(), то буде згенеровано повідомлення про помилку:

Loading...

Результат виконання наведеного прикладу:

Notice: Undefined offset: 2 in example.php on line 7
A: 1; B: 2; C:

Notice: Undefined offset: 2 in example.php on line 7
A: 3; B: 4; C: