Função is_subclass_of

A função is_subclass_of verifica se um objeto ou classe pertence às subclasses de uma classe especificada ou se implementa uma interface especificada. O primeiro parâmetro aceita um objeto ou nome de classe, o segundo - o nome da classe pai ou interface. O terceiro parâmetro opcional determina se o carregamento automático de classes deve ser considerado.

Sintaxe

phpis_subclass_of(mixed $object_or_class, string $class, bool $allow_string = true): bool

Exemplo

Vamos verificar a herança de classes simples:

php<?php
  class ParentClass {}
  class ChildClass extends ParentClass {}

  $res = is_subclass_of('ChildClass', 'ParentClass');
  var_dump($res);
?>

Resultado da execução do código:

phptrue

Exemplo

Vamos verificar a implementação de uma interface:

php<?php
  interface MyInterface {}
  class MyClass implements MyInterface {}

  $res = is_subclass_of('MyClass', 'MyInterface');
  var_dump($res);
?>

Resultado da execução do código:

phptrue

Exemplo

Verificação com objeto em vez do nome da classe:

php<?php
  class Animal {}
  class Dog extends Animal {}

  $dog = new Dog();
  $res = is_subclass_of($dog, 'Animal');
  var_dump($res);
?>

Resultado da execução do código:

phptrue

Exemplo

Verificação do caso em que a classe não é uma subclasse:

php<?php
  class A {}
  class B {}

  $res = is_subclass_of('B', 'A');
  var_dump($res);
?>

Resultado da execução do código:

phpfalse

Veja também

  • a função is_a,
    que verifica a pertinência a uma classe
  • a função class_parents,
    que retorna todos os pais
  • a função get_parent_class,
    que retorna a classe pai
  • a função instanceof,
    operador de verificação de instância