is_subclass_of funksiýasy

Is_subclass_of funksiýasy bir obýektiň ýa-da klassyň görkezilen klassyň nesillerine degişlidigini ýa-da ol görkezilen interfeýsi amala aşyrýandygyny barlaýar. Ilkinji parametr hökmünde obýekti ýa-da klas atyny, ikinji parametr hökmünde ata-ene klasynyň ýa-da interfeýsiň atyny kabul edýär. Üçünji hökmany däl parametr klasslaryň awtoýüklenişini hasaba almalydygyny kesgitleýär.

Sintaksis

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

Mysal

Ýönekeý klasslaryň miras alnyşyny barlaýalyň:

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

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

Kodyň ýerine ýetirilişiniň netijesi:

phptrue

Mysal

Interfeýsiň amala aşyrylyşyny barlaýalyň:

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

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

Kodyň ýerine ýetirilişiniň netijesi:

phptrue

Mysal

Klas aty ýerine obýekt bilen barlag:

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

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

Kodyň ýerine ýetirilişiniň netijesi:

phptrue

Mysal

Klas nesil däl ýagdaýy üçin barlag:

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

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

Kodyň ýerine ýetirilişiniň netijesi:

phpfalse

Şeýle-de görüň

  • is_a funksiýasyny,
    klasa degişlidigini barlaýar
  • class_parents funksiýasyny,
    ähli ata-eneleri gaýtarýar
  • get_parent_class funksiýasyny,
    ata-ene klassy gaýtarýar
  • instanceof funksiýasyny,
    instansiýany barlaw operator