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 的限制,现在也会发出警告。