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";
}
我想做的是在实例化之前检查一些 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";
}