特定
class a{...}
class b extends a{...}
class c extends b{...}
class d extends c{...}
有没有一种方法,从一个实例 class d
,以表明它的类定义扩展了C延伸B的延伸? 有没有做到这一点静态给出的类名称的方法吗?
我厌倦了从文件缓慢移动到文件搞清楚什么东西延伸,等等。
特定
class a{...}
class b extends a{...}
class c extends b{...}
class d extends c{...}
有没有一种方法,从一个实例 class d
,以表明它的类定义扩展了C延伸B的延伸? 有没有做到这一点静态给出的类名称的方法吗?
我厌倦了从文件缓慢移动到文件搞清楚什么东西延伸,等等。
我经常使用:
<?php
class grandfather {}
class father extends grandfather {}
class child extends father {}
function print_full_inheritance($class) {
while ($class!==false) {
echo $class . "\n";
$class = get_parent_class($class);
}
}
$child = new child();
print_full_inheritance(get_class($child));
?>
你可以在更多的PHP手册中http://php.net/manual/en/function.get-parent-class.php 。
你想用ReflectionClass。 有人张贴了如何使用代码做这个答案在这里: http://www.php.net/manual/en/reflectionclass.getparentclass.php
<?php
$class = new ReflectionClass('whatever');
$parents = array();
while ($parent = $class->getParentClass()) {
$parents[] = $parent->getName();
}
echo "Parents: " . implode(", ", $parents);
?>