each()
Введение
Как разработчик PHP, важно понимать различные функции работы с массивами, которые предоставляет PHP. Одна из таких функций — each(), которая исторически использовалась для перебора элементов массива и возврата пары «ключ-значение». Примечание: each() была помечена как устаревшая в PHP 7.2 и полностью удалена в PHP 8.0. В этой статье рассматриваются её устаревшее поведение, синтаксис и параметры, а также предлагаются современные альтернативы.
Синтаксис
Синтаксис функции each() выглядит следующим образом:
Синтаксис функции Each() в PHP
each(array $array): array|falseФункция each() принимает массив в качестве параметра и возвращает массив или false в случае ошибки.
Параметры
Функция each() принимает только один параметр — массив. Массив может быть индексным или ассоциативным. В случае индексного массива ключами будут целые числа, начинающиеся с 0, а в случае ассоциативного массива ключами будут имена, присвоенные каждому элементу.
Применение
Функция each() используется для перебора элементов массива и возврата пары «ключ-значение». Эту функцию можно использовать как с индексными, так и с ассоциативными массивами. Каждый вызов each() перемещает внутренний указатель массива. Функция each() возвращает массив, содержащий четыре элемента: числовые индексы 0 и 1 (псевдонимы для ключа и значения) и строковые индексы key и value.
Ниже приведен пример использования функции each():
Пример использования функции each() в PHP
<?php
// Legacy PHP 7.x example. This will cause a fatal error in PHP 8.0+.
$array = ["one" => 1, "two" => 2, "three" => 3];
while ($element = each($array)) {
echo $element['key'] . ' => ' . $element['value'] . '<br>';
}В приведенном выше примере мы сначала определяем ассоциативный массив с тремя парами «ключ-значение». Затем мы используем функцию each() для перебора элементов массива и возврата пары «ключ-значение». Наконец, мы используем цикл while для вывода каждой пары «ключ-значение».
Современный аналог для PHP 8+ Поскольку each() больше недоступна, для перебора массивов используйте foreach:
<?php
$array = ["one" => 1, "two" => 2, "three" => 3];
foreach ($array as $key => $value) {
echo $key . ' => ' . $value . '<br>';
}Отличия each() от других похожих функций работы с массивами
Функция each() похожа на другие функции работы с массивами, такие как foreach(), array_walk() и array_map(). Однако между этими функциями есть некоторые различия:
foreach()перебирает каждый элемент массива и присваивает значение переменной. Она не изменяет внутренний указатель массива и является рекомендуемым современным подходом.array_walk()иarray_map()используются для перебора массива и применения пользовательской функции к каждому элементу. Они не возвращают пару «ключ-значение», как функцияeach().
Статус устаревания и современные альтернативы
Функция each() помечена как устаревшая и удалена в современных версиях PHP. Её больше не рекомендуется использовать. Конструкция языка foreach является стандартной, более безопасной и производительной альтернативой для перебора массивов в PHP 8+.
Заключение
Подводя итог, функция each() исторически была полезна разработчикам PHP для перебора элементов массива и возврата пары «ключ-значение». Однако из-за её удаления в PHP 8.0 разработчикам следует использовать foreach для всех современных задач перебора массивов.
Практика
Что верно относительно функции each() в PHP согласно содержанию на указанной странице?