用类的字符串名称代替实例化类的Instanceof

时间:2019-05-27 06:55:44

标签: php object instanceof

是否可以在不生成新对象的情况下证明类是否是特定类的实例?

在示例中,我有一个带有类名的数组:

$classNames = [
    'TestClass',
    'ExampleClass',
    'OtherClass'
];

现在,我想证明这3个类是否是主类的一个实例(例如“类”)。

在循环中,应证明是这样的:

foreach($classNames as $className)
{
   if($className instanceof Classes)
   {
      // some code
   }
}

但是这不起作用,因为首先我必须实例化诸如TestClass ...之类的类。

还有其他选择吗?我想检查数组中的类是否是“类”的实例。

1 个答案:

答案 0 :(得分:2)

您可以使用is_subclass_of进行此检查:

foreach($classNames as $className)
{
   if(is_subclass_of($className, 'Classes')
   {
      // some code
   }
}