Релиз PHP 8.0

После года разработки представлен релиз языка программирования PHP 8.0, сообщает OpenNet. Он включает серию новых возможностей и несколько изменений, нарушающих совместимость.

Релиз PHP 8.0

После года разработки представлен релиз языка программирования PHP 8.0, сообщает OpenNet. Он включает серию новых возможностей и несколько изменений, нарушающих совместимость.

Ключевые улучшения PHP 8.0:

  • Включение JIT-компилятора. PHP транслирует исходные тексты PHP-скриптов в промежуточное представление (байткод), которое затем выполняется в виртуальной машине Zend VM. JIT поможет дополнительно поднять производительность за счёт преобразования байткода в специфичный для аппаратной платформы машинный код, который может напрямую исполняться процессором, минуя интерпретатор байткода в Zend VM.
  • Поддержка именованных аргументов функций, позволяющих передавать в функцию значения в привязке к именам, т. е. можно передавать аргументы в произвольном порядке и определять необязательные аргументы.
  • При вызове методов разрешено применение оператора «?», который позволяет инициировать вызов, только если метод присутствует, что позволяет избежать лишних проверок на возврат значения null.
  • Поддержка union-типов, определяющих коллекции из двух и более типов.
  • Поддержка атрибутов (аннотаций), позволяющих привязать метаданные (например, сведения о типах) к классам без использования синтаксиса Docblock.
  • Поддержка выражений match, которые в отличие от switch могут возвращать значения, поддерживают комбинирование условий, используют строгое сравнение типов и не требуют указания break.
  • Сокращённый синтаксис определения классов, позволяющий объединить определение конструктора и свойств.
  • Новый тип возвращаемых значений static.
  • Новый тип mixed, который может применяться для определения приёма функцией параметров с разными типами.
  • Выражение throw для обработки исключений.
  • WeakMap для создания объектов, которыми можно пожертвовать при сборке мусора.
  • Возможность использования выражения :class для объектов (аналог вызова get_class ()).
  • Возможность определения в блоке catch исключений, не привязанных к переменным.
  • Возможность оставления символа запятой после последнего элемента в списке параметров функции.
  • Новый интерфейс Stringable для идентификации любых строковых типов или данных, которых можно преобразовать в строку (для которых доступен метод __toString ()).
  • Новая функция str_contains (), упрощённый аналог strpos для определения вхождения подстроки, а также функции str_starts_with () и str_ends_with () для проверки совпадений в начале и конце строки.
  • Добавлена функция fdiv (), выполняющая операцию деления без вывода ошибки в случае деления на ноль.
  • Изменена логика соединения строк. Например, выражение 'echo ''sum: ''. $a + $b' ранее интерпретировалось как 'echo (''sum: ''. $a) + $b', а в PHP 8 будет обработано как 'echo ''sum: ''. ($a + $b)'.
  • Ужесточена проверка арифметических и битовых операций, например, выражения «[] % [42]» и «$object + 4» будут приводить к ошибке.
  • Реализован стабильный алгоритм сортировки, в котором при разных запусках сохраняется порядок следования одинаковых значений.
  • Изменено поведение при сравнении строковых и числовых типов.
Собрали для вас скидки к Black Friday

Хотите сообщить важную новость? Пишите в Телеграм-бот.

А также подписывайтесь на наш Телеграм-канал.

Горячие события

HRgile.club 2021 Online
23 апреля

HRgile.club 2021 Online

Минск

Читайте также

Google представила язык логического программирования Logica
Google представила язык логического программирования Logica
Google представила язык логического программирования Logica
TIOBE: один древний язык резко ворвался в топ-20, Objective-C — вылетел
TIOBE: один древний язык резко ворвался в топ-20, Objective-C — вылетел
TIOBE: один древний язык резко ворвался в топ-20, Objective-C — вылетел
OneSoil научился видеть посевы сквозь облака
OneSoil научился видеть посевы сквозь облака
OneSoil научился видеть посевы сквозь облака
9 популярных языков программирования с высокими зарплатами
9 популярных языков программирования с высокими зарплатами
9 популярных языков программирования с высокими зарплатами
Спасибо! 

Получать рассылки dev.by про белорусское ИТ

Что-то пошло не так. Попробуйте позже