ホームページ >バックエンド開発 >PHPチュートリアル >PHP は trait と呼ばれるコード再利用メソッドを実装しています。reuse trait_PHP チュートリアル
PHP 5.4.0 以降、PHP は trait と呼ばれる コード再利用 のメソッドを実装します。
Trait は、PHP のような単一継承言語用に用意されたコード再利用の仕組みです。トレイトは、単一継承言語の制限を軽減し、開発者が異なる階層内の独立したクラスでメソッドを自由に再利用できるように設計されています。
Trait は PHP の多重継承の解決策です。たとえば、2 つの抽象クラスを同時に継承するのは非常に面倒です。Trait はこの問題を解決するように設計されています。
伝統的な継承に水平的な特徴の組み合わせを追加します。
例1: traitキーワードを使用してtraitを定義する
リーリー例 2: クラス内でトレイトを使用する場合は、use キーワードを使用します。複数のトレイトを使用する場合は、カンマで区切ります
。 リーリー例 3: 優先順位
基本クラスから継承されたメンバーは、トレイトによって挿入されたメンバーによってオーバーライドされます。優先順位は、現在のクラスのメンバーがトレイトのメソッドをオーバーライドし、トレイトが継承されたメソッドをオーバーライドすることです。
例: 基本クラスから継承されたメンバーは、トレイトによって挿入されたメンバーによってオーバーライドされます
リーリー例: 現在のクラスのメンバーが特性メソッドをオーバーライドします
リーリー例 4: 特性間のネスト
リーリー例 5: トレイトで抽象メソッドを宣言できますが、それを使用するクラスまたはトレイトは抽象メソッドを実装する必要があります
リーリー例 6: 紛争の解決
2 つのトレイトが同じ名前のメソッドを挿入する場合、競合が明示的に解決されていない場合、致命的なエラーが発生します。
同じクラス内の複数のトレイトの名前の競合を解決するには、 insteadof 演算子を使用して、競合するメソッドのどれを使用するかを明示的に指定する必要があります。
上記のメソッドでは、他のメソッドを除外することのみが可能です。as 演算子は、メソッドのエイリアスに相当する別の名前で競合するメソッドの 1 つを導入できます。
リーリー
例 7: メソッドのアクセス制御を変更する
リーリー例 8: トレイトは属性も定義できます
リーリー トレイトがプロパティを定義する場合、クラスは同じ名前のプロパティを定義できません。定義しない場合はエラーが生成されます。クラス内のプロパティの定義が特性内の定義と互換性がある (可視性と初期値が同じ) 場合、エラー レベルは E_STRICT
であり、そうでない場合は致命的エラーです。
この記事を読んで何かを学んだ場合は、高評価をお願いします 記事に間違いがある場合は、ご指摘ください。
お互いから学び、一緒に進歩しましょう!