Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP在实例化之前检查类父级_Php_Oop_Inheritance_Parent Child - Fatal编程技术网

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

PHP在实例化之前检查类父级,php,oop,inheritance,parent-child,Php,Oop,Inheritance,Parent Child,我试图做的是在实例化之前检查一些类继承 class A{} class B extends A{} class C{} 在继续之前,我想检查B、C类的继承情况,如果它们继承了A,那么继续,否则我不会实例化 我不想要的是: 我想要的是: 但我只是想知道这是否可能 谢谢。是的,可以使用: is_subclass_of(); 以下示例来自: 因为PHP5.5:是(B::class,A::class);//正确(针对以下OP示例)。class静态属性返回完整的类路径,包括名称空间。 // That'

我试图做的是在实例化之前检查一些类继承

class A{}
class B extends A{}
class C{}
在继续之前,我想检查B、C类的继承情况,如果它们继承了A,那么继续,否则我不会实例化

我不想要的是: 我想要的是: 但我只是想知道这是否可能


谢谢。

是的,可以使用:

is_subclass_of();
以下示例来自:


因为PHP5.5:
是(B::class,A::class);//正确(针对以下OP示例)
class
静态属性返回完整的类路径,包括名称空间。
// That's what i want
var_dump(B instance of A); // Not valid 
is_subclass_of();
// 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";
}