Прочие изменения
Ядро PHP
Функция set(raw)cookie принимает аргумент $option
Функции setcookie() и setrawcookie() теперь также поддерживают следующее объявление (сигнатуру):
где$options - ассоциативный массив, который может иметь любой из ключей
"expires", "path",
"domain", "secure",
"httponly" и "samesite".
Новые ini-директивы syslog
Следующие ini-директивы добавлены для настройки логирования, если для опции
error_log установлено значение
syslog:
- syslog.facility
- Указывает тип программы, регистрирующей сообщение.
- syslog.filter
-
Задает тип фильтра для фильтрации сообщений. Поддерживаются три типа фильтров -
all,no-ctrlиascii. - syslog.ident
- Задает строку ident, добавляемую перед каждым сообщением.
Сборщик мусора
Улучшен сбор циклических ссылок, что может привести к значительным улучшениям производительности.
Разное
Функция var_export() теперь экспортирует объекты stdClass
в качестве массива, приведенных к объекту ((object) array( ... )), вместо
использования несуществующего метода stdClass::__setState().
Функция debug_zval_dump() изменена для отображения рекурсивных массивов и объектов так же, как и var_dump(). Теперь она не отображает их дважды.
Функции array_push() и array_unshift() теперь также могут быть вызваны с одним аргументом, что особенно удобно в сочетании с оператором распространения.
Интерактивный отладчик PHP
Удалены неиспользуемые константы PHPDBG_FILE,
PHPDBG_METHOD, PHPDBG_LINENO и
PHPDBG_FUNC.
Менеджер процессов FastCGI
Теперь также доступна функция getallheaders().
Библиотека Client URL (cURL)
Теперь требуется библиотека libcurl версии ≥ 7.15.5.
Фильтрация данных
FILTER_VALIDATE_FLOAT теперь также поддерживает параметр thousand,
который определяет набор разрешенных символов-разделителей для тысяч.
Значение по умолчанию ("',.") полностью обратно совместимо с предыдущими версиями PHP.
FILTER_SANITIZE_ADD_SLASHES был добавлен в качестве псевдонима фильтра
magic_quotes (FILTER_SANITIZE_MAGIC_QUOTES).
Фильтр magic_quotes подлежит удалению в будущих версиях PHP.
FTP
Режим по умолчанию изменен на binary.
Функции интернационализации
Константа Normalizer::NONE объявлена устаревшей, когда PHP скомпилирован
с ICU версии ≥ 56.
Введена константа Normalizer::FORM_KC_CF в качестве аргумента Normalizer::normalize()
для нормализации NFKC_Casefold; доступна, когда есть ICU ≥ 56.
Объектная нотация JavaScript (JSON)
Добавлен новый флаг JSON_THROW_ON_ERROR, который можно использовать с
json_decode() или json_encode() и заставляет эти функции
выбрасывать новое исключение JsonException при ошибке, вместо того,
чтобы устанавливать глобальное состояние ошибки, которое извлекается с помощью json_last_error() и json_last_error_msg().
JSON_PARTIAL_OUTPUT_ON_ERROR имеет приоритет над JSON_THROW_ON_ERROR.
Мультибайтовые строки
Конфигурационная опция --with-libmbfl больше недоступна.
ODBC (Unified)
Поддержка ODBCRouter и Birdstep,
включая ini-директиву birdstep.max_links была удалена.
OPcache
Удалена ini-директива opcache.inherited_hack. Это значение уже игнорировалось с PHP 5.3.0.
OpenSSL
Добавлены опции потока ssl min_proto_version и max_proto_version,
а также соответствующие с ними константы для возможных значений протокола TLS.
Регулярные выражения (совместимые с Perl)
Расширение PCRE было обновлено до PCRE2, что может привести к незначительным изменениям в поведении (например, диапазоны символов в классах теперь интерпретируются более строго) и дополняет существующий синтаксис регулярных выражений.
Функция preg_quote() теперь также экранирует символ '#'.
Microsoft SQL Server и функции Sybase (PDO_DBLIB)
Добавлен атрибут PDO::DBLIB_ATTR_SKIP_EMPTY_ROWSETS
для автоматического пропуска пустых наборов строк.
Добавлен атрибут PDO::DBLIB_ATTR_TDS_VERSION
который представляет версию TDS.
Столбцы DATETIME2 теперь обрабатываются как столбцы DATETIME.
Функции SQLite (PDO_SQLITE)
Базы данных SQLite3 теперь можно открыть в режиме только для чтения,
установив новый атрибут PDO::SQLITE_ATTR_OPEN_FLAGS
на значение PDO::SQLITE_OPEN_READONLY.
Обработка сессий
Функция session_set_cookie_params() теперь также поддерживает следующее объявление (сигнатуру):
где$options - ассоциативный массив, который может иметь любой из ключей
"lifetime", "path",
"domain", "secure",
"httponly" и "samesite".
Соответственно, возвращаемое значение session_get_cookie_params()
теперь также имеет элемент с ключом "samesite".
Кроме того, новая ini-опция session.cookie_samesite для установки по умолчанию директивы SameSite для cookies.
По умолчанию используется значение "" (пустая строка),
поэтому директива SameSite не задана.
Может быть установлена на значение "Lax" или "Strict",
которое устанавливает соответствующее значение директиве SameSite.
Tidy
Сборка вместе » tidyp теперь также поддерживается прозрачно.
Поскольку tidyp не предлагает API для получения даты релиза,
tidy_get_release() и tidy::getRelease() возвращает значение 'unknown' в этом случае.
XML-парсер
Возвращаемое значение callback-функции xml_set_external_entity_ref_handler() больше не игнорируется, если модуль был собран с библиотекой libxml. Ранее возвращаемое значение игнорировалось, а парсинг никогда не прекращался.
Zip
Сборка с использованием libzip, входящего в PHP, не рекомендуется, но все же возможна путем добавления --without-libzip в конфигурацию.
Сжатие Zlib
Добавлен параметр контекста zlib/level для обертки compress.zlib, чтобы облегчить установку желаемого уровня сжатия.