この記事では、PHP でのトレイトの簡単な使用例を中心に、トレイトの構文、トレイトがどのような機能を持ち、どのような状況でトレイトが使用されるかを説明します。それを参照できます
。PHP 5.4 の Traits は新しく導入された機能ですが、中国語で正確に翻訳する方法がわかりません。その実際の目的は、場合によっては多重継承を使用することですが、PHP には多重継承がないため、このようなものが考案されました。
トレイトは、さまざまなクラスから呼び出すことができるメソッドのセットとして理解できますが、トレイトはクラスではありません。インスタンス化することはできません。まず例を見て構文を見てみましょう:
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
特性 myTrait{ 関数 traitMethod1(){} 関数 traitMethod2(){}
}
//次に、これを traits と呼びます。構文は次のとおりです: クラスmyClass{ myTrait を使用します; }
//このようにして、次のように myTraits を使用して Traits 内のメソッドを呼び出すことができます: $obj = 新しい myClass(); $obj->traitMethod1 (); $obj->traitMethod2 (); > |
次に、特性が使用される理由を調べてみましょう。たとえば、ビジネスと個人という 2 つのクラスがあり、どちらもアドレスの属性を持っています。従来のアプローチは、両方のクラスが共通の特性を持つ親クラスを抽象化することです。次のコードに示すように、アクセス属性としてアドレス、ビジネス、個人をクライアント クラスに設定し、それぞれ継承します。
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
//クラスクライアント クラスクライアント{ プライベート$アドレス; パブリック getAddress() { $this->アドレスを返す; } パブリック setAddress($address) { $this->アドレス = $アドレス; } }
クラス ビジネスはクライアントを拡張します{ //ここでアドレス属性を使用できます }
//クラス個人 クラス個人はクライアントを拡張します{ //ここでアドレス属性を使用できます }
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
//トレイトアドレス 特性アドレス{ プライベート$アドレス; パブリック getAddress() { $this-> アドレスを返します; } パブリック setAddress($address) { $this->アドレス = $アドレス; } } //クラスビジネス クラスビジネス{ アドレスを使用します; // ここで address 属性を使用できます } //クラス個人 クラス個人{ アドレスを使用します; //ここでアドレス属性を使用できます } //クラスの順序 クラスの順序{ アドレスを使用します; //ここでアドレス属性を使用できます } |
これでさらに便利になりますよ!
。