Зміни, що ламають зворотну сумісність
Date
У методаDateTime::createFromImmutable() тепер попередній тип, що повертається static, раніше повертаний тип був DateTime
У методаDateTimeImmutable::createFromMutable() тепер попередній тип, що повертається static, раніше повертаний тип був DateTimeImmutable
Символи number
у відносних форматах більше не приймають кілька знаків, наприклад, +-2
ODBC
Модуль ODBC тепер екранує ім'я користувача та пароль у разі, якщо передається рядок з'єднання разом з ім'ям користувача/паролем, тоді рядок з'єднання буде змінено. Раніше при використанні значень користувача, що потребують екранування, могли згенерувати неправильний рядок з'єднання або вставити значення з даних, отриманих від користувача. Правила екранування повинні бути ідентичні поведінці .NET BCL DbConnectionOptions.
PDO_ODBC
Модуль PDO_ODBC також екранує ім'я користувача та пароль під час передачі рядка підключення. Для отримання додаткових відомостей див. зміна модуля ODBC
Стандартні функції
Функцияglob() тепер повертає порожній масив (array), якщо всі шляхи знаходяться поза межами директорії, визначеної в open_basedirРанее функция возвращала**false
**. Більше того, попередження тепер видається, навіть якщо деякі шляхи обмежені за допомогою директиви open_basedir
МетодFilesystemIterator::__construct(): до версії PHP 8.2.0 константа FilesystemIterator::SKIP_DOTS
була встановлена завжди і не могла бути відключена. Для збереження колишньої поведінки константа має бути явно встановлена під час використання параметра flags
Значение по умолчанию параметраflags
не було змінено.
Функції strtolower() strtoupper() stristr() stripos() strripos() lcfirst() ucfirst() ucwords() і str_ireplace() більше не чутливі до локалізації. Тепер вони виконують перетворення регістру ASCII, ніби локаль була "C". Локалізовані версії цих функцій доступні у модулі MBString. Більше того, функція array_change_key_case() та сортування за допомогою **SORT_FLAG_CASE
**теперь также используют преобразование регистра ASCII.
Функцияstr_split() тепер повертає порожній масив (array), якщо була викликана з порожнього рядка (string). Раніше вона повертала масив з одним порожнім рядком. на функцію mb_str_split() ця зміна не впливає, оскільки вона вже працювала так.
Функції ksort() і krsort() тепер виконують порівняння числових рядків при SORT_REGULAR
, використовуючи стандартні правила PHP 8
Функцияvar_export() більше не опускає провідний зворотний сліш для класів, що експортуються, тобто. вони тепер повністю кваліфіковані.
Стандартна бібліотека PHP (SPL)
Наступні методи тепер посилюють свою сигнатуру:
- SplFileInfo::_bad_state_ex()
- SplFileObject::getCsvControl()
- SplFileObject::fflush()
- SplFileObject::ftell()
- SplFileObject::fgetc()
- SplFileObject::fpassthru()
У методаSplFileObject::hasChildren() тепер попередній тип повертається false, раніше він був bool.
У методаSplFileObject::getChildren() тепер попередній тип, що повертається null, раніше він був ?RecursiveIterator
КлассGlobIterator тепер повертає порожній масив (array), якщо всі шляхи знаходяться поза межами директорії, заданої в open_basedirРанее он возвращал**false
**. Більше того, тепер видається попередження, навіть якщо деякі з шляхів знаходяться за межами open_basedir