別の親クラスを拡張した宣言済みクラスをすべて取得する必要があります。
たとえば...
class ParentClass {
}
class ChildOne extends ParentClass {
}
class ChildTwo extends ParentClass {
}
class ChildThree {
}
これを出力する配列が必要です:
array('ChildOne', 'ChildTwo')
私はPHPOOPを初めて使用しますが、いくつかのグーグルに基づいて、このソリューションを思いつきました。
$classes = array();
foreach( get_declared_classes() as $class ) {
if ( is_subclass_of($class, 'ParentClass') ){
array_push($classes, $class);
}
}
私が聞きたいのは、これが私がやりたいことを行うためのベストプラクティスなのか、それとももっと良い方法があるのかということです。グローバルスコープには、の子ではない他の多くのクラスが含まれますParentClass
。宣言されたすべてのクラスをループするのが最善の方法ですか?
編集 (目的の明確化):
これで達成したいのは、親クラスを拡張する各子クラスをインスタンス化することです。
$childone = new ChildOne; $childtwo = new ChildTwo;
のすべての子供のためにやりたいですParentClass
。