Вышел PHP 8.1 🎉
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
>>Click here to continue<<
