https://www.php.net/releases/8.1/ru.php
Основные новые возможности:
🔹 Enums они же перечисления;
🔹 Readonly свойства;
🔹 First-class callable — получение ссылки на любую функцию;
🔹 Оператор
new в инициализаторах (и вложенные атрибуты);🔹 Файберы;
🔹 final константы в классах;🔹 Новый тип
never для (не)возвращаемых значений;🔹 Запись восьмеричных чисел с префиксом
0o;🔹 Оператор
... поддерживает массивы со строковыми ключами;🔹 Много улучшений по производительности
(+23% к скорости на демо приложении Symfony)
В релизе также много депрекейшнов, улучшений консистентности и обработки ошибок.
Основные депрекейшны:
🔺 Объявлено устаревшим неявное преобразование
float в int, где теряется дробная часть;🔺 Интерфейс
Serializable объявлен устаревшим;🔺 Ограничено использование
$GLOBALS;🔺 Объявлено устаревшим передача значения
null в параметры встроенных функций, которые не nullable;🔺 Добавлены типы для возвращаемых значений встроенных классов (и новый атрибут
#[ReturnTypeWillChange]);🔺 Продолжено удаление типа resource. Ресурсы file_info, imap FTP Connection, LDAP, PostgreSQL теперь будут объектами, соответственно
finfo, IMAP\Connection, FTP\Connection, PgSql\Connection, PgSql\Result.Еще почитать-посмотреть:
• Подробно: php.watch/versions/8.1
• Коротко в видео: What's New in PHP 8.1
• Валентин Удальцов: Лайв-кодинг-обзор PHP 8.1
• Максимально полный список изменений: php-8.1.0/UPGRADING