如何检查对象实例是否继承自PHP中的Abstract Class

How to check object instance is inherited from Abstract Class in PHP

我有以下摘要Class

abstract class AbstractPerson{
  ......
}

我已将 AbstractPerson 继承到 Account

class Account extends AbstractPerson{
  ......
}

现在我要制作 class

的对象
$account= new Account()

我想知道如何检查 $account 对象是从 AbstractPerson class 扩展而来的吗?

使用:

if ($account instanceof AbstractPerson) {
   echo 'AbstractPerson';
}

好吧,您需要 Reflection,以及两个方法 getParentClass() 和 isAbstract()。

这是您需要的工作示例。

$accountReflection     = new ReflectionClass('Account');
$parentReflection     = new ReflectionClass($accountReflection->getParentClass()->getName());
$isAbstract           = $parentReflection->isAbstract(); // return true of false