Для услуги хостинга сайтов добавлена поддержка новой версии PHP – 7.3, релиз которой состоялся 6 декабря.
В PHP 7.3 внесено ряд изменений, улучшений и новых функций, среди которых:
- Более гибкий синтаксис Heredoc и Nowdoc. После закрывающего идентификатора в doc-строках больше не нужно ставить точку с запятой или новую строку. Кроме того, закрывающий идентификатор может быть с отступом, и в этом случае он будет удален из всех строк в doc-строке.
- Разрешена завершающая запятая в вызовах функций. Завершающие запятые в вызовах функций и методов теперь разрешены.
- Новый флаг JSON_THROW_ON_ERROR. Добавлен новый флаг JSON_THROW_ON_ERROR, который можно использовать с json_decode() или json_encode(). Данный флаг заставляет эти функции генерировать новое исключение JsonException при ошибке вместо установки глобального состояния ошибки, которое извлекается с помощью json_last_error(). JSON_PARTIAL_OUTPUT_ON_ERROR имеет приоритет над JSON_THROW_ON_ERROR.
- Миграция с PCRE на PCRE2. Расширение PCRE было обновлено до PCRE2, что может привести к незначительным изменениям в поведении. Кроме того, дополнен существующий синтаксис регулярных выражений.
- Поддержка ссылок в list(). Деструктурирование массива и функция list() теперь поддерживают присвоение по ссылкам с помощью синтаксиса [&$a, [$b, &$c]] = $d.
- Новая функция is_countable(). Функция проверяет, является ли содержимое переменной исчисляемым значением.
- Новые функции array_key_first() и array_key_last(). Функции для получения первого и последнего ключа массива.
- Функция image2wbmp() объявлена устаревшей. Вместо устаревшей функции следует использовать imagewbmp().
- Объявление нечувствительных к регистру констант признано устаревшим. Передача TRUE в качестве третьего параметра функции define() теперь генерирует предупреждение об устаревшей возможности.
- Объявление некоторого функционала устаревшим: использование assert() внутри пространств имен, передача нестрокового параметра needle в строковые функции поиска, функция fgetss() и фильтр потока string.strip_tags, явное использование констант FILTER_FLAG_SCHEME_REQUIRED и FILTER_FLAG_HOST_REQUIRED, недокументированные функции mbereg_*().
На сайте php.net можно детально ознакомиться с новыми возможностями, нарушающими обратную совместимость изменениями и другой информацией.
Напомним, что версия PHP устанавливается в свойствах веб-домена, то есть каждому веб-домену можно назначить необходимую версию:
На данный момент нашим клиентам доступна последняя версия PHP 7.3.0 и свыше 100 расширений. Некоторые популярные расширения (например, ioncube_loader) еще недоступны для PHP 7.3 и будут добавлены позднее.
Мы рекомендуем переход на версию PHP 7.1 или выше всем нашим клиентам, так как с 1 января прекращается официальная поддержка PHP 5.6. Кроме того, переход на PHP 7 может значительно повысить скорость работы сайта.
После изменения версии PHP советуем убедиться в корректной работе своего ресурса. В случае обнаружения проблем можно незамедлительно вернуть предыдущую версию и спокойно изучить журнал ошибок.