ホームページ >バックエンド開発 >PHPチュートリアル >PHP は trait と呼ばれるコード再利用メソッドを実装しています。reuse trait_PHP チュートリアル

PHP は trait と呼ばれるコード再利用メソッドを実装しています。reuse trait_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-12 08:54:02841ブラウズ

PHP は trait、reuse trait と呼ばれるコード再利用のメソッドを実装します

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 であり、そうでない場合は致命的エラーです。

リーリー

この記事を読んで何かを学んだ場合は、高評価をお願いします 記事に間違いがある場合は、ご指摘ください。

お互いから学び、一緒に進歩しましょう!

www.bkjia.com本当http://www.bkjia.com/PHPjc/1122395.html技術記事 PHP は trait と呼ばれるコード再利用メソッドを実装します。 trait の再利用 PHP 5.4.0 以降、PHP は trait と呼ばれるコード再利用メソッドを実装します。 Trait は PHP のような単一のものです...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。