编程

PHP 8.1 新特性解析: 新增 #[ReturnTypeWillChange] 属性

403 2023-08-17 11:20:00

#[\ReturnTypeWillChange] 是 PHP 8.1 引入的新特性,这表示不匹配的暂定返回类型不应该发出弃用通知。

PHP 8.0 之前的版本将属性语法解析为代码注释,不会导致任何语法错误。在类方法中添加 #[\ReturnTypeWillChange] 属性不会导致任何问题,但在PHP 8.1中可以忽略了弃用通知。

这是添加到 PHP 的第一个内置属性。

class Foo implements ArrayAccess {
    #[\ReturnTypeWillChange]
    public function offsetGet(mixed $offset) {}
    // ...
}

当临时返回类型升级为标准返回类型时(如果未修复签名不匹配,则会导致致命错误),此属性将不再有效。

向后兼容性影响

除非在全局命名空间中声明了名为 ReturnTypeWillChange的用户空间类,否则此更改不应导致任何兼容性问题。