verifique se existe uma classe dentro do hirachy estendido

Instância de verificação de classe média em PHP

Meu problema é que estendi muitas classes da BaseClass.
Mas eu precisava apenas das classes que estão se estendendo de uma determinada classe (MiddleClass) dentro da cadeia,
por exemplo:

SecondClass extends ->
FirstClass extends ->
BaseClass

ThirdClass extends ->
SecondClass extends ->
MiddleClass extends ->
FirstClass extends ->
BaseClass

FourthClass extends ->
SecondClass extends ->
MiddleClass extends ->
FirstClass extends ->
BaseClass

Como estou em um loop, não seria recomendado fazer isso:

if ($myclass instanceoff ThirdClass || $myclass instanceoff FourthClass) then do;

em vez disso, implementei um método para fazer isso

if ($myclass->isInstanceof(MiddleClass)) then do;

aqui está como fazer isso

class BaseClass
{


public function getInstances($instance = null, $list = array())
{

if (is_null($instance)) {
$instance
= $this;
}

$parent
= get_parent_class($instance);

if ($parent) {
$list
[] = $parent;
$list
= self::getInstances($parent, $list);
}

return $list;
}

public function isInstanceOf($class)
{
foreach ($this->getInstances() as $instance) {
if (strpos($instance, $class) !== false) {
return true;
}
}
return false;
}

}

class FirstClass extends BaseClass
{

}

class SecondClass extends FirstClass
{

}

$SecondClass
= new SecondClass();

$result
= $SecondClass->isInstanceOf("FirstClass");

var_dump
($result);