У метода DateTime::createFromImmutable() теперь предварительный возвращаемый тип static, ранее возвращаемый тип был DateTime.
У метода DateTimeImmutable::createFromMutable() теперь предварительный возвращаемый тип static, ранее возвращаемый тип был DateTimeImmutable.
Символы number
в относительных форматах
больше не принимают несколько знаков, например, +-2
.
Модуль ODBC теперь экранирует имя пользователя и пароль в случае, если передаётся строка соединения вместе с именем пользователя/паролем, тогда строка соединения будет изменена. Раньше при использовании пользовательских значений, нуждающихся в экранировании, могли сгенерировать неправильную строку соединения или вставить значения из данных, полученных от пользователя. Правила экранирования должны быть идентичны поведению .NET BCL DbConnectionOptions.
Модуль 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() больше не опускает ведущий обратный слеш для экспортируемых классов, т.е. они теперь полностью квалифицированы.
Следующие методы теперь усиливают свою сигнатуру:
У метода SplFileObject::hasChildren() теперь предварительный возвращаемый тип false, ранее он был bool.
У метода SplFileObject::getChildren() теперь предварительный возвращаемый тип null, ранее он был ?RecursiveIterator.
Класс GlobIterator теперь возвращает пустой массив (array),
если все пути находятся вне пределов директории, заданной в open_basedir.
Ранее он возвращал false
.
Более того, теперь выдаётся предупреждение,
даже если только некоторые из путей находятся за пределами open_basedir.