PHP 8.5: Новые функции массивов array_first()
и array_last()
array_first
и array_last
.В PHP 8.5 добавлены две новые функции получения первого и последнего значений массива. Эти функции дополняют функции array_key_first
и array_key_last
, добавленные в PHP 7.3.
array_first
: Получение первого значения из заданного массива;null
, если массив пуст.array_last
: Получить последнее значение из заданного массива;null
, если массив пуст.
Функция array_first
Функция array_first
возвращает первое значение заданного массива. Для массивов со списком это, по сути, значение ключа 0
. Однако array_first
возвращает первое значение даже в ассоциативных массивах.
/**
* Возвращает первое значение заданного массива.
*
* @param array $array Массив для получения первого значения.
* @return mixed Первое значение массива или null, если массив пуст.
* Обратите внимание, что null также может быть допустимым значением массива.
*/
function array_first(array $array): mixed {}
Примеры использования array_first
array_first([1, 2, 3]); // 1
array_first([2, 3]); // 2
array_first(['a' => 2, 'b' => 1]); // 2
array_first([null, 2, 3]); // null
array_first([]); // null
array_first([$obj, 2, 3]); // $obj
array_first([1])); // 1
array_first([true]); // true
Функция array_last
Функция array_last
возвращает последнее значение заданного массива.
/**
* Возвращает последнее значение заданного массива.
* @param array $array Массив для получения последнего значения.
* @return mixed Последнее значение массива или null, если массив пуст.
* Обратите внимание, что null также может быть допустимым значением массива.
*/
function array_last(array $array): mixed {
return empty($array) ? null : $array[array_key_last($array)];
}
Примеры использования array_last
array_last([1, 2, 3]); // 3
array_last([2, 3]); // 3
array_last(['a' => 2, 'b' => 1]); // 1
array_last([2, 3, null]); // null
array_last([]); // null
array_last([2, 3, $obj]); // $obj
array_last([1])); // 1
array_last([true]); // true
Полифилл функций array_first
и array_last
Можно тривиально реализовать полифилл новых функций, используя функции array_key_first
и array_key_last
, добавленные в PHP 7.3.
function array_first(array $array): mixed {
return $array === [] ? null : $array[array_key_first($array)];
}
function array_last(array $array): mixed {
return $array === [] ? null : $array[array_key_last($array)];
}
В качестве альтернативы, пакет polyfills/array-first-array-last предоставляет полифиллы для PHP 7.3 — PHP 8.4.
composer require polyfills/array-first-array-last
Влияние на обратную совместимость
Существующие PHP-приложения, объявляющие собственные функции array_first
и array_last
, будут вызывать фатальные ошибки при попытке повторного объявления этих функций. Такие приложения должны либо удалить свои собственные объявления, либо переименовать функции, либо добавить пространство имён.
Для других приложений это изменение не вызывает проблем с обратной совместимостью.
Кроме того, существует полифилл этих функций.