向后不兼容更改

日期

DateTime::createFromImmutable() 现在具有 static 的暂定返回类型,之前是 DateTime.

DateTimeImmutable::createFromMutable() 现在具有 static 的暂定返回类型,之前是 DateTimeImmutable.

number 符号在 相对格式 中不再接受多个符号,例如 +-2.

ODBC

ODBC 扩展现在会对用户名和密码进行转义,以防同时传递连接字符串和用户名/密码,并且需要将字符串追加到连接字符串。之前,包含需要转义值的用户信息可能会导致创建格式错误的连接字符串,或者注入来自用户提供的数据的值。转义规则应该与 .NET BCL DbConnectionOptions 行为相同。

PDO_ODBC

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() 不再省略导出的类的开头反斜杠,即这些类现在是完全限定的。

标准 PHP 库 (SPL)

以下方法现在强制执行其签名

SplFileObject::hasChildren() 现在具有 false 的暂定返回类型,之前是 bool.

SplFileObject::getChildren() 现在具有 null 的暂定返回类型,之前是 ?RecursiveIterator.

GlobIterator 现在如果所有路径都受到 open_basedir 的限制,则返回一个空 array。之前它返回 false。此外,即使只有部分路径受到 open_basedir 的限制,现在也会发出警告。

添加注释

用户贡献注释

此页面没有用户贡献的注释。
To Top