已弃用功能

PHP 内核

使用动态属性

动态属性的创建已被弃用,除非类通过使用 #[\AllowDynamicProperties] 属性选择加入。 stdClass 允许动态属性。使用 __get()/__set() 魔术方法不受此更改的影响。动态属性弃用警告可以通过以下方法解决

  • 声明属性(首选)。
  • 向类添加 #[\AllowDynamicProperties] 属性(这也适用于所有子类)。
  • 使用 WeakMap 如果需要与不拥有的对象关联其他数据。

相对可调用对象

不被 $callable() 语法(但被 call_user_func() 接受)接受的可调用对象已被弃用。特别是

  • "self::method"
  • "parent::method"
  • "static::method"
  • ["self", "method"]
  • ["parent", "method"]
  • ["static", "method"]
  • ["Foo", "Bar::method"]
  • [new Foo, "Bar::method"]
这不会影响正常的可调用方法,例如 "A::method"["A", "method"]

"${var}""${expr}" 样式插值

"${var}""${expr}" 样式的字符串插值已被弃用。分别使用 "$var"/"{$var}""{${expr}}"

MBString

对所有 MBString 函数弃用使用 QPrintBase64UuencodeHTML-ENTITIES '文本编码'。与 MBString 支持的所有其他文本编码不同,这些编码不编码 Unicode 代码点序列,而是编码原始字节序列。对于指定其中一种非编码时,大多数 MBString 函数的正确返回值尚不清楚。此外,PHP 对所有这些编码都有单独的内置实现;例如,UUencoded 数据可以使用 convert_uuencode()/convert_uudecode() 处理。

SPL

内部 SplFileInfo::_bad_state_ex() 方法已被弃用。

标准

utf8_encode()utf8_decode() 已被弃用。

添加注释

用户贡献的注释

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