Функции 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, чтобы облегчить установку желаемого уровня сжатия.