PHP 8.1 新特性解析: 新增 #[ReturnTypeWillChange] 属性
#[\ReturnTypeWillChange]
是 PHP 8.1 引入的新特性,这表示不匹配的暂定返回类型不应该发出弃用通知。
PHP 8.0 之前的版本将属性语法解析为代码注释,不会导致任何语法错误。在类方法中添加 #[\ReturnTypeWillChange]
属性不会导致任何问题,但在PHP 8.1中可以忽略了弃用通知。
这是添加到 PHP 的第一个内置属性。
class Foo implements ArrayAccess {
#[\ReturnTypeWillChange]
public function offsetGet(mixed $offset) {}
// ...
}
当临时返回类型升级为标准返回类型时(如果未修复签名不匹配,则会导致致命错误),此属性将不再有效。
向后兼容性影响
除非在全局命名空间中声明了名为 ReturnTypeWillChange
的用户空间类,否则此更改不应导致任何兼容性问题。