私は、多くのクラスがクラスツリーで高レベルになっているPHPプロジェクトに取り組んでいます。つまり、それらには多くの親クラスがあります。
あるレベルで、非常に多くのサブクラスやサブサブクラスなどを含むクラスがあると考えてください。現在のインスタンスにつながるすべてのサブクラスの配列を提供するクラスFood
のメソッドを実装したいと思います。クラスと現在のインスタンスの間のツリー(後者を含む)。クラス自体とそのすべてのスーパークラスを結果に含めることはできません。getFoodClasses()
Food
Food
Food
例:のサブクラスがFood
、Vegetable
サブクラスFruit
があり、次にサブクラスがあるBanana
場合、onの(Banana) $b->getFoodClasses()
結果は `array('Vegetable'、'Fruit'、'Banana')になる必要があります。
それで、
class Food extends SomeBaseClass
{
public function getFoodClasses()
{
/* Here goes the magic! */
}
}
class Vegetable extends Food {}
class Fruit extends Vegetable {}
class Banana extends Fruit {}
$b = new Banana;
print_r($b->getFoodClasses());
その結果:
Array
(
[0] => Vegetable
[1] => Fruit
[2] => Banana
)