PHP 8.5: array_first() and array_last() finally native
PHP 8.5 добавил две функции которых не хватало годами: array_first() и array_last(). До этого приходилось писать что-то вроде reset($arr) или $arr[array_key_first($arr)], что неудобно и не работает с выражениями напрямую.
Вот минимальный пример чтобы убедиться что они работают как ожидаешь:
Самое важное: не изменяют внутренний указатель массива в отличие от reset() и end(). Вставьте код в sandbox и запустите на PHP 8.5.
Кто уже использует в проде? Есть нюансы с null-значениями внутри массива?
Проверил null внутри массива:
Так что да, если в массиве реально может быть null как первый элемент, нужна отдельная проверка на count($arr) > 0. Это единственный нюанс. В остальном функции рабочие.
Для PHP 8.4 и ниже можно сделать полифилл который совместим по поведению:
array_key_first() и array_key_last() доступны с PHP 7.3, так что полифилл покрывает широкий диапазон версий.
```php blocks are runnable.