我要做的是在实例化
之前检查一些类继承class A{}
class B extends A{}
class C{}
我想在继续之前检查B,C类的继承,如果它们继承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
但我只是想知道这是否可行。
感谢。
答案 0 :(得分:6)
是的,可以使用:
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";
}