DateTime::createFromImmutable() 现在具有 static 的暂定返回类型,之前是 DateTime。
DateTimeImmutable::createFromMutable() 现在具有 static 的暂定返回类型,之前是 DateTimeImmutable。
相对格式 中的 number
符号不再接受多个符号,例如 +-2
。
ODBC 扩展现在对用户名和密码进行转义,这种情况发生在同时传递连接字符串和用户名/密码时,并且必须追加字符串。之前,包含需要转义的值的用户值可能会创建格式错误的连接字符串,或注入来自用户提供的数据的值。转义规则应与 .NET BCL DbConnectionOptions 行为相同。
传递连接字符串时,PDO_ODBC 扩展也对用户名和密码进行转义。有关详细信息,请参阅ODBC 扩展的更改。
glob() 如果所有路径都受 open_basedir 限制,则现在返回一个空的 array。之前它返回 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() 现在对于空 string 返回一个空的 array。之前它返回一个包含单个空字符串条目的数组。mb_str_split() 不受此更改的影响,因为它之前的行为就是这样。
ksort() 和 krsort() 现在在 SORT_REGULAR
下使用标准 PHP 8 规则进行数字字符串比较。
var_export() 不再省略导出的类的开头反斜杠,即这些类现在是完全限定的。
以下方法现在强制执行其签名
SplFileObject::hasChildren() 现在具有 false 的暂定返回类型,之前是 bool。
SplFileObject::getChildren() 现在具有 null 的暂定返回类型,之前是 ?RecursiveIterator。
GlobIterator 如果所有路径都受 open_basedir 限制,则现在返回一个空的 array。之前它返回 false
。此外,即使只有某些路径受 open_basedir 限制,现在也会发出警告。