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: