Функции setcookie() и setrawcookie() теперь также поддерживают следующее объявление (сигнатуру):
где $options - ассоциативный массив, который может иметь любой из ключей "expires", "path", "domain", "secure", "httponly" и "samesite".Следующие ini-директивы добавлены для настройки логирования, если для опции error_log установлено значение syslog:
Улучшен сбор циклических ссылок, что может привести к значительным улучшениям производительности.
Функция var_export() теперь экспортирует объекты stdClass
в качестве массива, приведенных к объекту ((object) array( ... )
), вместо
использования несуществующего метода stdClass::__setState().
Функция debug_zval_dump() изменена для отображения рекурсивных массивов и объектов так же, как и var_dump(). Теперь она не отображает их дважды.
Функции array_push() и array_unshift() теперь также могут быть вызваны с одним аргументом, что особенно удобно в сочетании с оператором распространения.
Удалены неиспользуемые константы PHPDBG_FILE
,
PHPDBG_METHOD
, PHPDBG_LINENO
и
PHPDBG_FUNC
.
Теперь также доступна функция getallheaders().
Теперь требуется библиотека libcurl версии ≥ 7.15.5.
FILTER_VALIDATE_FLOAT
теперь также поддерживает параметр thousand,
который определяет набор разрешенных символов-разделителей для тысяч.
Значение по умолчанию ("',."
) полностью обратно совместимо с предыдущими версиями PHP.
FILTER_SANITIZE_ADD_SLASHES
был добавлен в качестве псевдонима фильтра
magic_quotes (FILTER_SANITIZE_MAGIC_QUOTES
).
Фильтр magic_quotes подлежит удалению в будущих версиях PHP.
Режим по умолчанию изменен на binary.
Константа Normalizer::NONE
объявлена устаревшей, когда PHP скомпилирован
с ICU версии ≥ 56.
Введена константа Normalizer::FORM_KC_CF
в качестве аргумента Normalizer::normalize()
для нормализации NFKC_Casefold; доступна, когда есть ICU ≥ 56.
Добавлен новый флаг 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 больше недоступна.
Поддержка ODBCRouter и Birdstep, включая ini-директиву birdstep.max_links была удалена.
Удалена ini-директива opcache.inherited_hack. Это значение уже игнорировалось с PHP 5.3.0.
Добавлены опции потока ssl min_proto_version и max_proto_version, а также соответствующие с ними константы для возможных значений протокола TLS.
Расширение PCRE было обновлено до PCRE2, что может привести к незначительным изменениям в поведении (например, диапазоны символов в классах теперь интерпретируются более строго) и дополняет существующий синтаксис регулярных выражений.
Функция preg_quote() теперь также экранирует символ '#'.
Добавлен атрибут PDO::DBLIB_ATTR_SKIP_EMPTY_ROWSETS
для автоматического пропуска пустых наборов строк.
Добавлен атрибут PDO::DBLIB_ATTR_TDS_VERSION
который представляет версию TDS.
Столбцы DATETIME2 теперь обрабатываются как столбцы DATETIME.
Базы данных SQLite3 теперь можно открыть в режиме только для чтения,
установив новый атрибут PDO::SQLITE_ATTR_OPEN_FLAGS
на значение PDO::SQLITE_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.Сборка вместе » tidyp теперь также поддерживается прозрачно. Поскольку tidyp не предлагает API для получения даты релиза, tidy_get_release() и tidy::getRelease() возвращает значение 'unknown' в этом случае.
Возвращаемое значение функции обратного вызова xml_set_external_entity_ref_handler() теперь также учитывается, если расширение было собрано с библиотекой libxml. Ранее возвращаемое значение игнорировалось, а парсинг никогда не прекращался.
Сборка с использованием libzip, входящего в PHP, не рекомендуется, но все же возможна путем добавления --without-libzip в конфигурацию.
Добавлен параметр контекста zlib/level для обертки compress.zlib, чтобы облегчить установку желаемого уровня сжатия.