Context:
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] 属性に対処することを計画してください。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3