我有一个名为Plugins
的PHP类,其中我有其他plguin样式的PHP类,它们从PLugins
类扩展。
有没有办法让所有从Plugins
类扩展的PHP CLass名称?也许在PHP中使用Reflection
之类的东西
因此,在下面的示例中,我将能够获得值:
abstract class Plugins
{
// class properties and methods
}
class MyTestPlugin extends PLugins
{
// class properties and methods
}
class AnotherTestPlugin extends PLugins
{
// class properties and methods
}
答案 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>';
}
}
?>