26 ноября 2020 года официально вышла версия PHP 8.0. Теперь она доступна на всех тарифных планах виртуального хостинга. Эта версия включает в себя новые и интересные возможности, улучшение производительности и исправления ошибок.
Что нового
JIT
JIT (just in time) – компилятор, который с PHP 8.0 доступен как расширение OpCache. Главная польза JIT – увеличение производительности за счет выполнения части кода на уровне процессора в обход выполнения на Zend VM.
Union Types
Поддержка union-типов, определяющих коллекции из двух и более типов.
Nullsafe-оператор
Возможность использования оператора ? для обхода отдельных условных проверок объекта на значение null.
Поддержка именованных аргументов функций
В функцию теперь можно передавать значения в привязке к названиям параметров. Это дает возможность указывать параметры в произвольном порядке и определять необязательные аргументы.
Выражение соответствия
Поддержка выражений match, которые в отличие от switch могут возвращать значение, не требуют указания break, поддерживают комбинирование условий и использует строгое сравнение типов.
Синтаксис для объединения свойств класса и конструктора
Доступен сокращенный синтаксис определения классов, позволяющий объединить определение конструктора и свойств.
Новый тип возврата static
Помимо возможных возвращаемых типов parent и self теперь можно возвращать static.
Новый тип mixed
Тип mixed позволит разработчикам объявлять информацию о типе для большинства функций и свойств класса.
Throw-выражения
Оператор throw преобразован в выражения, расширена функциональность использования.
::class на объектах
Теперь можно использовать ::class на объектах (аналог функции get_class).
Неименованные исключения
Появилась возможность определять в блоке catch исключения без привязки к переменной.
Улучшенное сравнение строк и чисел
Появились новые функции и возможности для работы со строками и числами. Изменено поведение при сравнении строковых и числовых типов.
Добавлен запрет на выключение JSON
JSON чрезвычайно полезен и широко используется, поэтому теперь он обязателен и не может быть выключен.
Исправления критических ошибок
- Стандартизированы ошибки разных типов
- Переклассифицированы предупреждения
- Оператор @ больше не "глушит" фатальные ошибки
- Изменен уровень сообщений об ошибках по умолчанию
- Изменен приоритет при конкатенации
- Беззвучный режим ошибки PDO по умолчанию
- Более строгие проверки типов для арифметических и побитовых операторов
- Изменены сигнатуры методов класса Reflection
- Реализован стабильный алгоритм сортировки без потери порядка следования одинаковых значений
С полным списком изменений в версии PHP 8.0 вы можете ознакомиться на официальном сайте.
Предупреждение
PHP 8.0 – серьезное обновление, поэтому прежде чем обновлять свой хостинг ознакомьтесь с изменениями. Некоторые изменения новой версии могут быть недоступны для устаревших релизов, и сайт после обновления версии PHP может работать некорректно.
Как установить PHP 8.0 в панели виртуального хостинга
Для этого переходим в ISP панель вашего сервера и изменяем версию PHP 8.0 в настройках домена. Переключение версии происходит простым образом.
В панели управления хостингом перейдите в раздел WWW, далее заходим в подраздел WWW-домены из списка выбираем домен и нажимаем клавишу Изменить. В появившемся окне в строке Версия PHP из списка выбираем PHP 8.0.8 (alt).