获取扩展类的类的类类名?

时间:2016-02-10 01:42:28

标签: php class reflection

我有一个名为Plugins的PHP类,其中我有其他plguin样式的PHP类,它们从PLugins类扩展。

有没有办法让所有从Plugins类扩展的PHP CLass名称?也许在PHP中使用Reflection之类的东西

因此,在下面的示例中,我将能够获得值:

  • MyTestPlugin
  • AnotherTestPlugin
abstract class Plugins
{
    // class properties and methods
}


class MyTestPlugin extends PLugins
{
    // class properties and methods
}


class AnotherTestPlugin extends PLugins
{
    // class properties and methods
}

2 个答案:

答案 0 :(得分:1)

是的,你可以通过 Reflection

来完成
$children  = array();
foreach( get_declared_classes() as $class )
{
    $reflected = new ReflectionClass( $class );
    if( $reflected->isSubclassOf( 'Plugins' ) ) $children[] = $class;
}

答案 1 :(得分:1)

<?php

abstract class Plugins
{
    // class properties and methods
}


class MyTestPlugin extends Plugins
{
    // class properties and methods
}


class AnotherTestPlugin extends Plugins
{
    // class properties and methods
}

$plugin1 = new MyTestPlugin();
$plugin2 = new AnotherTestPlugin();


$parentClassName = 'Plugins';

foreach(get_declared_classes() as $class){
    if(is_subclass_of($class, $parentClassName)){
        echo $class.' == is a child class of '.$parentClassName.'<br>';
    }

}

?>