在实例化

时间:2015-08-24 03:52:39

标签: php oop inheritance parent-child

我要做的是在实例化

之前检查一些类继承
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 

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

感谢。

1 个答案:

答案 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";
}