Функции setcookie() и setrawcookie() теперь также поддерживают следующее объявление (сигнатуру):
где$options
- ассоциативный массив, который может иметь любой из ключей "expires"
, "path"
, "domain"
, "secure"
, "httponly"
и "samesite"
. Следующие ini-директивы добавлены для настройки логирования, если для опции error_log установлено значение syslog
:
all
, no-ctrl
и ascii
. Начиная с PHP 7.3.8, также доступен тип raw
, восстанавливающий поведение системного журнала в предыдущих версиях PHP. Этот фильтр также повлияет на вызовы 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_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. Сборка вместе » tidyp теперь также поддерживается прозрачно. Поскольку tidyp не предлагает API для получения даты релиза, tidy_get_release() и tidy::getRelease() возвращает значение 'unknown'
в этом случае.
Возвращаемое значение callback-функции xml_set_external_entity_ref_handler() больше не игнорируется, если модуль был собран с библиотекой libxml. Ранее возвращаемое значение игнорировалось, а парсинг никогда не прекращался.
Сборка с использованием libzip, входящего в PHP, не рекомендуется, но всё же возможна путём добавления --without-libzip в конфигурацию.
Добавлен параметр контекста zlib/level для обёртки compress.zlib, чтобы облегчить установку желаемого уровня сжатия.