コンテキスト:
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 Types の追加により、内部関数とメソッドは戻り値の型を取得しました。仕様。ただし、これらの型を強制すると、下位互換性が失われます。代わりに、暫定的な変更について非推奨の通知が導入されました。
#[ReturnTypeWillChange] 属性の目的:
この属性は、戻り値の型の計画された変更を示します。 PHP 8.1 は、この属性でマークされたメソッドの非推奨通知を無視し、古い PHP バージョンのサポートを許可します。
対処方法:
注: 強制的な戻り値の型は PHP 9.0 で実装される可能性が高いため、それに応じて #[ReturnTypeWillChange] 属性に対処することを計画してください。
以上がPHP 8.1 で戻り値の型の競合を処理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。