PHP 7.4 доступен на всех тарифных планах виртуального хостинга

Еще 28 ноября 2019 года было объявлено на официальном сайте о выходе новой версии синего слона PHP 7.4.0. А уже 20-го февраля 2020 года вышла версия 7.4.3. Самое время посмотреть, что же добавили в версии 7.4.

Что нового

Типизированые свойства
Свойства класса теперь поддерживают объявления типов.

Стрелочные функции
Стрелочные функции - это сокращенная запись для определения функций с неявной привязкой родительской области видимости по значению.

Ограниченная ковариация возвращаемого типа и контравариантность типа аргумента
Полная поддержка вариантности доступна только при использовании автозагрузки. Внутри одного файла могут быть только нециклические ссылки, поскольку все классы должны быть определены, перед тем как на них ссылаться.

Присваивающий оператор объединения с null

Распаковка внутри массивов

Разделитель в числовых литералах
Теперь в числовых литералах между знаками могут быть символы подчеркивания.

Слабые ссылки
Слабые ссылки позволяют программисту сохранить ссылку на объект, которая не помешает сборщику мусора удалить этот объект.

Обработка исключений из метода __toString()
Выбрасывание исключений из метода __toString() теперь разрешено. Ранее это приводило к фатальной ошибке. Существующие отлавливаемые фатальные ошибки при преобразовании объекта в строку будут доступны в виде исключений класса Error.

Хеширование

  • Добавлен хеш crc32c, использующий полином Кастаноли. Эта реализация алгоритма CRC32 используется системами хранения, такими как iSCSI, SCTP, Btrfs и ext4.
  • Многобайтовые строки
  • Добавлена функция mb_str_split(), которая выполняет, то же, что и str_split(), но работает с кодовыми точками, а не с байтами.

OPcache
Добавлена поддержка предварительной загрузки кода.

Регулярные выражения (совместимые с Perl)
Функции preg_replace_callback() и preg_replace_callback_array() теперь принимают дополнительный аргумент flags с поддержкой флагов PREG_OFFSET_CAPTURE и PREG_UNMATCHED_AS_NULL. Он повлияет на формат массива совпавших значений, передаваемого в callback-функцию.

PDO
Имя пользователя и пароль теперь можно указать как часть DSN для драйверов mysql, mssql, sybase, dblib, firebird и oci. Ранее поддержка этого была только для драйвера pgsql. Если имя пользователя/пароль указаны и в конструкторе и в DSN, то конструктор будет иметь приоритет.

Также теперь можно экранировать вопросительные знаки в SQL-запросах, чтобы они не воспринимались как именованные параметры. Использование ?? отправит один знак вопроса в базу данных, и, например, в случае использования PostgreSQL, будет использован оператор проверки существования ключа в JSON (?).

Пользовательская сериализация объектов
Добавлен новый механизм сериализации пользовательских объектов, использующий два новых магических метода: __serialize и __unserialize. Новый механизм сериализации заменяет интерфейс Serializable, который в будущем будет объявлен устаревшим.

Функции слияния массивов без аргументов
Функции array_merge() и array_merge_recursive() теперь могут вызываться без каких-либо аргументов, и тогда они возвратят пустой массив. Это полезно в сочетании с оператором расширения, например, array_merge(...$arrays).

Функция proc_open()
proc_open() теперь принимает массив вместо строки для выполнения команды. В этом случае процесс будет открыт напрямую (без командной оболочки), а PHP экранирует любой необходимый аргумент. Функция proc_open() теперь поддерживает дескрипторы redirect и null.

Устаревшие возможности

Из стандартной поставки были удалены модули:

  • Firebird/Interbase
  • Recode
  • WDDX

Мы привели не весь список нововведений. Более подробно можно изучить самостоятельно на официальном сайте.

Как установить PHP 7.4 в панели виртуального хостинга

Далее продемонстрировано как можно включить PHP 7.4 у себя в панели управления хостингом. Как и всегда, переключение версии осуществляется буквально парой кликов.

В панели управления хостингом перейдите в раздел WWW, далее заходим в подраздел WWW-домены из списка выбираем домен, на которым планируете установить PHP версии 7.4 и нажимаем клавишу Изменить. В появившемся окне в строке Версия PHP из списка выбираем PHP 7.4.3 (alt).

Нужен надежный хостинг?