Вход Регистрация
ruen

Что нового в PHP 8 - улучшения и возможности, из-за которых стоит переходить на эту версию

Язык PHP за время своего существования прошел путь совершенствования, став из простого языка для построения веб-страниц мощным инструментом. PHP 8 приносит еще больше улучшений и возможностей. Проделана большая работа по оптимизации – производительность PHP 8 стала выше. Также был улучшен синтаксис, а система типов стала более надежной. Обо всем подробнее ниже.

chto-novogo-v-php-8

Что нового в PHP 8

Краткий список новшеств, на которые стоит обратить внимание:

– универсальные типы (union type), позволяющие для объединенных типов заменить аннотации PHPDoc;

– именованные аргументы, что означает возможность передавать только необходимые аргументы и в любом порядке, просто указывая имена аргументов;

– определение свойств в конструкторе, которое позволяет использовать меньше кода как для определения, так и для инициализации свойств;

– оператор nullsafe (?->), помогает избежать проверки на null. Достаточно использовать последовательность вызовов с этим оператором. Возвращается null, если один из элементов в проверяемой последовательности вернет null;

– добавлены атрибуты, что означает возможность взамен аннотаций PHPDoc использовать структурные метаданные со стандартным синтаксисом PHP;

– добавлено выражение match, похожее на switch, но match является выражением со строгой проверкой типов и его результат может быть возвращён. Возможно использовать только однострочные выражения;

– обработка ошибок согласованности типов для встроенных функций, что позволяет таким функциям теперь выдавать ошибки в случае неправильных типов аргументов;

– JIT (компиляция Just-In-Time), что позволяет ускорить PHP примерно в 3 раза. Но такой прирост может быть получен не всегда, необходимо учитывать тип веб-приложения. Без использования этого новшества, PHP 8 равен по скорости PHP 7.4;

– изменения в сравнении строк и чисел. Если происходит сравнение со строкой, содержащей число, будет использовано сравнение чисел, иначе будет выполнено преобразование и строчное сравнение;

– прочие улучшения в системе типов, обработке ошибок и согласованности данных (консистентности).

Улучшения в системе типов и обработке ошибок PHP 8

Рассмотрим это более детально. Сделано следующее:

– появились строгие проверки типов для некоторых операторов;

– подавления ошибок оператором @ для фатальных ошибок больше не происходит;

– добавлен новый тип mixed;

– стало возможным наследование с методами private;

– тип static может быть возвращаемым;

– добавлена проверка методов для абстрактных трейтов;

– у магических методов появились правильные сигнатуры;

– проведена переработка предупреждений движка;

– теперь выводится фатальная ошибка в случае, если сигнатуры методов несовместимы;

– для OpenSSL, Curl, XMLWriter, Gd, Sockets и расширения XML теперь вместо ресурсов используются непрозрачные объекты;

– добавлены типы для функций Email thread.

Изменения в синтаксисе PHP 8

Синтаксис PHP 8 также был улучшен, среди таких улучшений можно выделить следующее:

– стало возможным использовать запятую в конце списков параметров и в списке use замыканий, как ранее это можно было делать для массивов;

– для блока catch можно не указывать переменную;

– синтаксис некоторых переменных изменен;

– все имена в пространстве имен теперь рассматриваются как отдельный токен;

– throw теперь является выражением;

– для объектов стало возможным использовать ::class.

Новые классы, функции и интерфейсы PHP 8

Эти нововведения помогут сделать работу с PHP еще более удобной и производительной:

– добавлен класс Weak Map (коллекция, которая принимает объекты в качестве ключей и служит для создания кешей данных, полученных из объекта, которым не нужно существовать дольше, чем сам объект);

– добавлен интерфейс Stringable (класс, реализующий метод __toString());

– новая функция str_contains (определяет, содержит ли строка заданную подстроку);

– str_starts_with (проверяет, начинается ли строка с заданной подстроки);

– str_ends_with (проверяет, заканчивается ли строка заданной подстрокой);

– fdiv (функция для деления одного числа на другое по спецификации IEEE 754);

– get_debug_type (получает тип переменной для отладки);

– get_resource_id (получение целочисленного идентификатора для указанного ресурса);

– объектно-ориентированная функция token_get_all (выполняет разбиение переданного кода на PHP-лексемы);

– новшества для DOM, новые API для обхождения и обработки.

Рассмотренные возможности и улучшения позволят разрабатывать на PHP гораздо продуктивнее и удобнее. Если проект использует старую версию, возможно стоит переходить на PHP 8 – это позволит увеличить производительность, безопасность и удобство при разработке проекта.

Комментарии (0)
Для комментирования войдите или зарегистрируйтесь.
Оставить заявку

Последние статьи

Популярные разделы

Eqsash (Инструменты)

Приложение для Android - VK LAST USER ID, отучитель от зависимости и т.д.:
Скачать APK

Поделиться

Подписаться

YouTube

Книги

IT-заметки - Простым языком о самом нужном (HTML, CSS, JavaScript, PHP, базы данных, Drupal, Битрикс, SEO, домены, безопасность и другое), PDF, 500 стр.

Am (Мессенджер)

Общение смайликами со звуком.

Не работает видео? Смотреть в VK

- Скачать APK-файл (Android);

- Веб-версия (и PWA);

- Страница проекта.