each — Возвращает текущую пару ключа и значения массива и сдвигает указатель на одну позицию вперёд
each: Возвращает текущую пару ключа и значения массива и сдвигает указатель на одну позицию вперёд. Контекст: расширение или раздел Массивы. Различительные признаки: each; обязательные $array; результат array; задача «получение данных»; профиль «безопасность».
Материал подготовлен автоматизированно по структурным фактам и прошёл программные шлюзы качества; индивидуальная ручная редактура каждой страницы не заявляется. Методика подготовки и ограничения.
array each(array|object $array)Назначение each
each: Возвращает текущую пару ключа и значения массива и сдвигает указатель на одну позицию вперёд. Справочная сущность относится к разделу «Массивы». Используйте её, когда это краткое назначение совпадает с задачей приложения; фактическое поведение подтверждайте сигнатурой и проверочным сценарием ниже.
Чем отличается each
Это процедурная функция раздела «Массивы». Её отличают имя each, контракт «обязательные $array» и объявленный результат array; эти три признака нужно сверять вместе при выборе похожего API.
Смысловое направление each
Смысловое направление each — «получение данных». В прикладном коде различайте отсутствие данных, пустое значение и технический отказ источника. Контрольный набор для этой операции: проверьте пустой источник, один результат и недоступное окружение. Такой акцент отделяет each от API с похожей сигнатурой, но противоположным действием или другим жизненным циклом.
Сигнатура each
Структурная запись: array each(array|object $array). В ней 1 параметр: обязательные $array. Результат объявлен как array; перед переносом кода сопоставьте сигнатуру с версией PHP и составом расширений проекта.
Параметры each
Порядок и роли аргументов по сигнатуре: 1. $array — array|object, обязателен. Для each фиксируйте фактические типы входа в тесте и отдельно проверяйте значения на границе допустимого диапазона.
Контроль входных данных для each
1) array|object $array — обязательный: разведите тесты для пустого набора, одного элемента и неоднородных значений.
Результат each
each объявляет результат типа array. each возвращает коллекцию типа array. Пустой набор может быть корректным результатом, поэтому его смысл определяют отдельно от исключения или диагностического сообщения.
Проверочный сценарий для each
Убедитесь, что раздел «Массивы» доступен в целевой сборке PHP. Сначала выполните контрольный вызов с обязательным набором array|object $array. Необязательных аргументов в этой сигнатуре нет, поэтому меняйте только состояние окружения. Для профиля «безопасность» важно не записывать секреты и исходные ключи в журнал; негативный сценарий должен проверить неверный ключ, повреждённые данные и отказ операции.
Интеграция each в проект
Проверку доступности each и преобразование входных значений разместите у границы модуля «Массивы». Для профиля «безопасность» вынесите обработку отказа в одну ветку и добавьте к журналу имя операции, версию PHP и безопасные метаданные входа. Не применяйте оператор @: он скрывает диагностический сигнал, необходимый для разбора сбоя. Повторный вызов разрешайте только после явной проверки, что операция each не создаёт нежелательный повторный эффект в вашем сценарии.
Диагностика each
Сначала запишите точную сигнатуру array each(array|object $array) и фактические типы переданных значений. Затем подтвердите загрузку расширения «Массивы» в той же среде, где выполняется each. Если результат неожиданен, сравните его тип с array и воспроизведите вызов на минимальном входе без подавления предупреждений. После исправления повторите штатный и граничный сценарии, чтобы исключить маскировку ошибки случайным успешным результатом.
Границы применения
Для категории «безопасность» применяйте отдельный негативный тест: проверить неверный ключ, повреждённые данные и отказ операции. В production-коде важно не записывать секреты и исходные ключи в журнал. Исходные предупреждения и примечания не копируются на эту страницу: перед решением, влияющим на совместимость или безопасность, сверяйте поведение в целевой версии PHP.
Когда выбирать each
Выбор each оправдан, когда одновременно выполнены три условия: 1) в сборке доступно расширение «Массивы»; 2) сигнатура содержит 1 аргумент: обязательных 1, необязательных 0; 3) вызывающему коду нужен результат array и действие «получение данных». Для профиля «безопасность» до интеграции отдельно подтвердите применимость правила: «undefined». Если хотя бы один пункт не выполняется, сравните контракт с key: у него другое назначение, владелец или набор входных данных.
Сравнение each с соседними API
Для each базовый ориентир: возвращает текущую пару ключа и значения массива и сдвигает указатель на одну позицию вперёд; обязательные $array; результат array. Сопоставление с опубликованными соседями: key: получает ключ текущего элемента массива; вход — обязательные $array; результат — int|string|null. list: присваивает переменным значения как массиву; вход — обязательные $var; необязательные $...vars; вариативные $...vars; результат — array. current: возвращает текущий элемент массива; вход — обязательные $array; результат — mixed. Выбор делайте по различиям владельца, контракта и жизненного цикла, а не по сходству имени.
Версии и ограничения
each сверена по закреплённой ревизии php/doc-ru. В исходной записи присутствует признак устаревания: проверьте альтернативу перед новым использованием. Не переносите выводы между версиями без повторного запуска минимального воспроизводимого примера для each.
Связанные материалы
Источники и проверка
- PHP Documentation Group — структурный источник, без внешней ссылки
- creativecommons.org — условия лицензии
Страница составлена самостоятельно по структурным фактам: имени сущности, сигнатуре, типам и версии. Длинные фрагменты исходной документации не публикуются. Структурный источник: PHP Documentation Group / php-doc-ru, ревизия 5192f2d8cd6b6f28961ac2ff7f9bd5266c666972, лицензия CC BY 3.0 или более поздняя. Структура и практические пояснения изменены; проект не является официальным сайтом PHP.
Последняя содержательная проверка: . Автор-разработчик Михаил Каржин. Методика качества контента.