「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > PHP 8.1 で戻り値の型の競合を処理するには?

PHP 8.1 で戻り値の型の競合を処理するには?

2024 年 11 月 17 日に公開
ブラウズ:386

How to Handle Return Type Conflicts in PHP 8.1?

リファレンス: 戻り値の型の競合と #[\ReturnTypeWillChange] 属性

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 バージョンのサポートを許可します。

対処方法:

  1. で説明されているメソッドを特定します。非推奨の通知と予想される戻り値の型。
  2. 可能であれば、予想される型と一致するようにメソッドの戻り値の型を変更します。
  3. 必要に応じて、#[ を追加して非推奨の通知を一時的に抑制します。 \ReturnTypeWillChange] 属性.

注: PHP 9.0 では戻り値の型が強制される可能性があるため、それに応じて #[\ReturnTypeWillChange] 属性に対処することを計画してください。

最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3