ReturnTypeWillChange アトリビュート

(PHP 8 >= 8.1.0)

はじめに

ほとんどの final でない内部メソッドは、 それをオーバライドする際、 互換性がある戻り値の型を宣言することが必須になっています。 そうしない場合、継承が有効かを検証する際に、 推奨されない警告が発生します。 これは、暫定的な戻り値の型のフェーズを導入するものです。 つまり、戻り値の型に互換性がない場合、将来のバージョンでそれが強制されるまでは、 エンジンは致命的なエラーではなく、推奨されない警告を発生させます。 PHP のバージョン間の互換性を保ちたいがために、 戻り値の型を宣言できない場合、 アトリビュート #[\ReturnTypeWillChange] を追加することで警告を抑止できます。

警告

ReturnTypeWillChange アトリビュートが推奨されない警告を抑止するのは、 暫定的な戻り値の型のフェーズの間だけです。 ユーザー定義のクラスで定義されたメソッドをオーバーライドする場合には、何の効果もありません。 内部メソッドが strict な型を採用すると、 オーバーライドするメソッドのシグネチャの不一致は致命的なエラーを引き起こすようになり、 このアトリビュートは何の効果も持たなくなります。

クラス概要

#[\Attribute]
final class ReturnTypeWillChange {
/* メソッド */
public function __construct()
}

目次