检查延伸

3 php oop extends class

我试图发现一个是另一个延伸,但它只是不起作用..有人能指出我正确的方向吗?

class Main
{
}

class Sub extends Main
{
}

class Third
{
}

$check = class_extends('Sub', 'Main'); // should return true
$check = class_extends('Third', 'Main'); // should return false
Run Code Online (Sandbox Code Playgroud)

这是可能的,如果是这样,怎么样?

com*_*857 10

你可能正在寻找is_subclass_of.也可以使用实例和字符串类名,假设你有这些类:

class B {}
class C extends B {}
class A {}
Run Code Online (Sandbox Code Playgroud)

然后

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
Run Code Online (Sandbox Code Playgroud)

或者,如果你喜欢瘦箭(->),你也可以使用反射:

$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
Run Code Online (Sandbox Code Playgroud)