上下文:
在 PHP 8.1 中,指定方法的返回类型变得更加普遍,导致与现有实现发生冲突。
问题:
当方法的返回类型从兼容类型更改为不兼容类型或未指定时,会出现以下弃用通知出现:
Deprecated: Return type of [Method Name] should either be compatible with ..., or the #[\ReturnTypeWillChange] attribute should be used...
返回类型协方差的含义:
PHP 7.0 引入了返回类型,确保基于指定约定调用代码的行为一致。扩展或实现类必须维护相同或更具体的返回类型。
弃用背景:
随着 PHP 8.0 中 Union 类型的添加,内部函数和方法获得了返回类型规格。但是,强制执行这些类型会破坏向后兼容性。相反,针对暂定更改引入了弃用通知。
#[ReturnTypeWillChange] 属性的用途:
此属性指示返回类型的计划更改。 PHP 8.1 忽略标有此属性的方法的弃用通知,从而允许支持较旧的 PHP 版本。
要做什么:
注意: PHP 9.0 中可能会强制执行返回类型,因此计划相应地解决 #[ReturnTypeWillChange] 属性。
以上是如何处理 PHP 8.1 中的返回类型冲突?的详细内容。更多信息请关注PHP中文网其他相关文章!