PHP_PHP チュートリアルでのトレイトの使用の簡単な例

WBOY
リリース: 2016-07-13 09:53:46
オリジナル
1080 人が閲覧しました

PHP でのトレイトの簡単な使用例

この記事では、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 つのクラスがあり、どちらもアドレスの属性を持っています。従来のアプローチは、両方のクラスが共通の特性を持つ親クラスを抽象化することです。次のコードに示すように、アクセス属性としてアドレス、ビジネス、個人をクライアント クラスに設定し、それぞれ継承します。

?

しかし、同じアドレス属性にアクセスする必要がある order という別のクラスがある場合はどうなるでしょうか。これは OOP の原則に準拠していないため、order クラスは client クラスを継承できません。このとき、特性を定義してこれらのパブリック プロパティを定義できます。

?

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 属性を使用できます

}

//クラス個人

クラス個人{

アドレスを使用します;

//ここでアドレス属性を使用できます

}

//クラスの順序

クラスの順序{

アドレスを使用します;

//ここでアドレス属性を使用できます

}

これでさらに便利になりますよ!

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/1000096.html技術記事 PHP におけるトレイトの簡単な使用例 この記事では、PHP におけるトレイトの簡単な使用例を中心に、トレイトの構文、トレイトがどのような機能を持っているか、どのような場合にトレイトを使用するかを中心に紹介します...
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート