Az is_subclass_of függvény

Az is_subclass_of függvény ellenőrzi, hogy egy objektum vagy osztály a megadott osztály leszármazottjai közé tartozik-e, vagy implementálja-e a megadott interfészt. Első paraméterként egy objektumot vagy osztálynevet fogad, másodikként egy szülő osztály vagy interfész nevét. A harmadik, opcionális paraméter határozza meg, hogy kell-e figyelembe venni az osztályok automatikus betöltését.

Szintaxis

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

Példa

Ellenőrizzük egyszerű osztályok öröklődését:

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

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

A kód végrehajtásának eredménye:

phptrue

Példa

Ellenőrizzük egy interfész implementálását:

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

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

A kód végrehajtásának eredménye:

phptrue

Példa

Ellenőrzés objektummal osztálynév helyett:

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

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

A kód végrehajtásának eredménye:

phptrue

Példa

Annak az esetnek az ellenőrzése, amikor egy osztály nem leszármazott:

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

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

A kód végrehajtásának eredménye:

phpfalse

Lásd még

  • az is_a függvényt,
    amely egy osztályhoz való tartozást ellenőrzi
  • a class_parents függvényt,
    amely visszaadja az összes szülőt
  • a get_parent_class függvényt,
    amely visszaadja a szülő osztályt
  • az instanceof függvényt,
    a példány ellenőrző operátort