2

現在、私は次のようにしています:

$classes = get_declared_classes();
$models = array();

foreach($classes as $class){
  $class = new \ReflectionClass($class);
  if($class->isSubclassOf('\\App\\Model'))
    $models[] = $class;
}

しかし、ご覧のとおり、「モデル」クラスの子であるクラスを見つけるために、クラスごとにリフレクションオブジェクトを作成しています。

私の子クラスを検索するより速い方法はありますか?

4

2 に答える 2

1

試す

is_subclass_of($class, '\\App\\Model', true); // or is_a()

通知/警告を受け取った場合は、最後の引数をポップします。3番目の引数は、最初の引数が文字列であり、直接拒否されるべきではないことを示しています(関数はデフォルトでオブジェクトを予期します)

is_subclass_of($class, '\\App\\Model'); // or is_a()

私のために働く!

于 2012-10-20T12:10:42.673 に答える
0

これを使って

foreach($classes as $class){
  if($class->is_Subclass_Of($class, '\\App\\Model', true))
    $models[] = $class;
}

または、 is_subclass_ofphp.netを見ることができます

于 2012-10-20T12:06:23.320 に答える