PHP 在实例化之前检查 class 父级

PHP check class parent before instantiating

我想做的是在实例化之前检查一些 class 继承

class A{}
class B extends A{}
class C{}

我想在继续之前检查 B,C classes 是否继承了它们,如果它们继承了 A 则继续前进,否则我不会实例化。

我不想要的:

// That's not what i want
$B = new B();
var_dump($B instance of A); // Valid => true

我想要的:

// That's what i want
var_dump(B instance of A); // Not valid 

但我只是想知道这是否可行。

谢谢。

是的,可以使用:

is_subclass_of();

下面的示例来自 http://php.net/manual/en/function.is-subclass-of.php

// usable only since PHP 5.0.3
if (is_subclass_of('WidgetFactory_Child', 'WidgetFactory')) {
   echo "yes, WidgetFactory_Child is a subclass of WidgetFactory\n";
} else {
   echo "no, WidgetFactory_Child is not a subclass of WidgetFactory\n";
}