PHP 3709 ~ 2 мин.

Что нового в PHP 8.5

Что нового в PHP 8.5

PHP 8.5, вероятно, будет выпущен как обычно где-то в конце 2025 года, возможно по традиции в ноябре, но уже сейчас стали известны некоторые подробности нового функционала и устаревания некоторых функций

В отличие от поста 4-х летней давности об PHP 7.5 - PHP 8.5 реально запланирован и будет следующей минорной версией.

Новое в PHP 8.5

Новая функция curl_multi_get_handles

Расширение Curl в PHP 8.5 добавляет новую функцию curl_multi_get_handles, которая возвращает массив объектов CurlHandle из объекта CurlMultiHandle. Без этой функции для извлечения объектов CurlHandle, добавленных в CurlMultiHandle, приложению пришлось бы поддерживать список объектов CurlHandle, желательно в WeakMap:

$cm = curl_multi_init();
curl_multi_get_handles($cm);
// пустой массив

$ch1 = curl_init('https://example.com/foo');
$ch2 = curl_init('https://example.com/bar');

curl_multi_add_handle($cm, $ch1);
curl_multi_add_handle($cm, $ch2);

curl_multi_get_handles($cm);
// [$ch1, $ch2]

Новая константа PHP_BUILD_DATE

В PHP 8.5 появится новая константа PHP_BUILD_DATE, которая показывает дату и время билда PHP, ранее эти данные были доступны только из функции phpinfo(), теперь же можно будет вывести так:

echo PHP_BUILD_DATE;
// Nov 22 2025 00:00:10

Новые функции get_exception_handler и get_error_handler

До PHP 8.5 не было прямого способа получить текущие установленные обработчики ошибок и исключений с помощью set_error_handler и set_exception_handler. PHP 8.5 же добавляет функции: get_error_handler и get_exception_handler, которые закроют эту потребность:

/**
 * Returns the currently set error handler, or null if none is set.
 * @return callable|null
 */
function get_error_handler(): ?callable {}

/**
 * Returns the currently set exception handler, or null if none is set.
 * @return callable|null
 */
function get_exception_handler(): ?callable {}

Пример использования:

set_error_handler(fn() => null);
get_error_handler(); // object(Closure)#1 (3) {...}

set_error_handler(fn() => null);
get_error_handler(); // object(Closure)#1 (3) {...}

Новые функции array_first и array_last

До PHP 8.5, а если быть точнее в PHP 7.3 были добавлены функции array_key_first и array_key_last, для получения первого и последнего ключа в массиве, что интересно, извлечение значений было добавлено только в PHP 8.5:

  • array_first - Извлечь первое значение из заданного массива, будет возвращен null если массив пуст.

  • array_last - Извлечь последнее значение из заданного массива, будет возвращен null если массив пуст.

Обратите внимание, что эти функции возвращают значение null если массив пуст. Однако null так же может быть допустимым значением массива.

Примеры использования:

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([$object, 2, 3]); // $object
array_first([1])); // 1
array_first([true]); // true

Устаревшее в PHP 8.5

Все MHASH_*константы устарели

В PHP 8.1 все mhash функции были объявлены устаревшими: mhash, mhash_​count, mhash_​get_​block_​size, mhash_​get_​hash_​name, и mhash_​keygen_​s2k. Однако константы, которые эти функции принимали в качестве параметров, не были объявлены устаревшими. В PHP 8.5 все константы MHASH_* объявлены устаревшими вместе с существующим устареванием функций mhash:

mhash(MHASH_SHA1, 'test');

Constant MHASH_SHA1 is deprecated ....
Function mhash() is deprecated since 8.1 ...

Что думаешь?

nnnnnnnnnn01.05.2025

Что, нихера не добавили получается?

Сергей Мухин 05.05.2025

Да нет, почему же, добавляют понемногу, до фича фриз еще много времени

Категории
  • PHP 68
  • Заметки 18
  • Безопасность 4
  • Флуд 2
  • Nginx 2
  • ИТ новости 2
  • Видео 1
  • Docker 1
  • Roadmap 1
  • Архитектура 0

Хочешь поддержать сайт?

Делаем из мухи слона

sergeymukhin.com

персональный блог о веб-разработке от Сергея Мухина. Блог был основан в 2018 году, и собирался уделять основное внимание последним тенденциям, учебным пособиям, а также советам и рекомендациям, позволяющим начинающим девелоперам встать быстрее на правильную дорогу веб разработки, но что-то пошло не так 😃

Релизы PHP 8.4

Дата Релиз
4 Июля 2024 Альфа 1
18 Июля 2024 Альфа 2
1 Августа 2024 Альфа 3
13 Августа 2024 Feature freeze
15 Августа 2024 Бета 1
29 Августа 2024 Бета 2
12 Сентября 2024 Бета 3
26 Сентября 2024 RC 1
10 Октября 2024 RC 2
24 Октября 2024 RC 3
7 Ноября 2024 RC 4
21 Ноября 2024 GA

Что нового?