PHP 5.4以降では、役立つ可能性のある特性を使用できます。2つの特性を定義できます。1つはクラスa
が持つ関数を含み、もう1つはクラスが持つ関数を含みますが、クラスb
は含みませんa
。
それで:
trait TraitA {
function a1() { }
function a2() { }
}
trait TraitB {
function b1() { }
function b2() { }
}
a
次に、のみを使用するクラス、両方の特性を使用するクラス、および:のみを使用TraitA
するb
クラスをc
定義できます。TraitB
class a {
use TraitA
// contains a1 and a2
}
class b {
use TraitA, TraitB
// contains a1, a2, b1 and b2
}
class a {
use TraitB
// contains b1 and b2
}
特性の詳細:http://php.net/manual/en/language.oop5.traits.php
異なる特性間の関数名に注意を払う必要があることに注意してください。両方のトレイトで同じ関数名を使用することはできません。そうしないと、衝突が発生します。