我尝试检测一个被另一个扩展,但它不起作用。任何人都可以指出我正确的方向吗?
class Main
{
}
class Sub extends Main
{
}
class Third
{
}
$check = class_extends('Sub', 'Main'); // should return true
$check = class_extends('Third', 'Main'); // should return false
那么这是否可能,如果可能,如何实现?
您可能正在寻找 is_subclass_of
.也适用于实例和字符串类名,假设您有这些类:
class B {}
class C extends B {}
class A {}
然后
var_dump(is_subclass_of('C', 'B')); // true, C is subclass of B
var_dump(is_subclass_of('C', 'A')); // false C is not subclass of A
或者,如果您喜欢瘦箭头 (->
),您可以使用 reflection也是:
$refC = new ReflectionClass('C');
var_dump($refC->isSubclassOf('B')); // true, C is subclass of B
var_dump($refC->isSubclassOf('A')); // false C is not subclass of A