Інші зміни
Ядро PHP
Функція set(raw)cookie приймає аргумент $option
Функції setcookie() і setrawcookie() тепер також підтримують таке оголошення (сигнатуру):
setcookie(string $name, string $value = "", array $options = []): bool
где$options
- асоціативний масив, який може мати будь-який із ключів "expires"
"path"
"domain"
"secure"
"httponly"
и"samesite"
Нові ini-директиви syslog
Наступні ini-директиви додані для налаштування логування, якщо для опції error_logустановлено значениеsyslog
:
Вказує тип програми, яка реєструє повідомлення.
Задає тип фільтра для фільтрації повідомлень з типами фільтрів, що підтримуються - all
no-ctrl
иascii
. Починаючи з PHP 7.3.8, також доступний тип raw
, що відновлює поведінку системного журналу у попередніх версіях PHP. Цей фільтр також вплине на дзвінки syslog()
Задає рядок 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() тепер також підтримує таке оголошення (сигнатуру):
session_set_cookie_params(array $options): bool
где$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, щоб полегшити встановлення бажаного рівня стиснення.