检查一个类是否是另一个类的子类
2022-08-30 17:59:45
我想在不创建实例的情况下检查一个类是否是另一个类的子类。我有一个类,它接收一个类名作为参数,作为验证过程的一部分,我想检查它是否属于特定的类系列(以防止安全问题等)。有什么好的方法可以做到这一点吗?
我想在不创建实例的情况下检查一个类是否是另一个类的子类。我有一个类,它接收一个类名作为参数,作为验证过程的一部分,我想检查它是否属于特定的类系列(以防止安全问题等)。有什么好的方法可以做到这一点吗?
is_subclass_of()
将正确检查一个类是否扩展了另一个类,但如果两个参数相同(将是 ),则不会返回。true
is_subclass_of('Foo', 'Foo')
false
简单的相等性检查将添加所需的功能。
function is_class_a($a, $b)
{
return $a == $b || is_subclass_of($a, $b);
}
是的,有反射
<?php
class a{}
class b extends a{}
$r = new ReflectionClass( 'b' );
echo "class b "
, (( $r->isSubclassOf( new ReflectionClass( 'a' ) ) ) ? "is" : "is not")
, " a subclass of a";