以降では、コードを再利用するための「トレイト」という仕組みが導入されました。ような単一継承言語でコードを再利用するための仕組みのひとつです。いくつかのメソッド群を異なるクラス階層にある独立したクラスで再利用できるようにします。関連するありがちな問題を回避することもできます。トレイトはクラスと似ていますが、トレイトは単にいくつかの機能をまとめるためだけのものです。トレイト自身のインスタンスを作成することはできません。昔ながらの継承に機能を加えて、振る舞いを水平方向で構成できるようになります。継承しなくてもクラスのメンバーに追加できるようになります。基底クラスから継承したメンバーよりも、トレイトで追加したメンバーのほうが優先されます。その次にくるのが継承したメソッドとなります。トレイトから追加されたメソッドで上書きされます。クラスで定義したメソッドでも同じです。その次にくるのが継承したメソッドとなります。MyHelloWorld();$o->sayHello();?>上の例の出力は以下となります。TheWorldIsNotEnough();$o->sayHello();?>上の例の出力は以下となります。文でカンマ区切りで指定します。MyHelloWorld();$o->sayHello();$o->sayWorld();$o->sayExclamationMark();?>上の例の出力は以下となります。そのうちのひとつを選ばなければなりません。メソッドのいずれかにエイリアスを追加できます。その他のメソッドにも何も影響を及ぼさないことに注意しましょう。使うように定義します。いうエイリアスを指定して使います。クラス内でのメソッドの可視性も変更することができます。}}?>トレイトを組み合わせたトレイトクラスからトレイトを使えるのと同様に、トレイトからもトレイトを使えます。定義したトレイトのメンバーの全体あるいは一部を組み合わせることができます。MyHelloWorld();$o->sayHello();$o->sayWorld();?>上の例の出力は以下となります。World!トレイトのメンバーの抽象化トレイトでは、抽象メソッドを使ってクラスの要件を指定できます。$val;}}?>トレイトの静的なメンバートレイトでは、静的なメンバーやメソッドを定義できます。StaticExample;}Example::doSomething();?>プロパティトレイトにはプロパティも定義できます。PropertiesExample;$example->x;?>トレイトでプロパティを定義したときは、クラスでは同じ名前のプロパティを定義できません。Manualプラスアルファレンタルサーバ。