PHP-тегі instanceof операторы және ООП-тегі мұрагерлік

instanceof операторын қолданған кездегі мұрагерліктің ерекшеліктерін қарастырайық. Бізде ата-ана класы және бала класы бар делік:

index.php<?php
  // Ата-ана класы:
  class ParentClass
  {
    
  }
  
  // Бала класы:
  class ChildClass extends ParentClass
  {
    
  }
?>

Бала класының нысанын жасайық:

index.php<?php
  $obj = new ChildClass;
?>

Енді instanceof көмегімен тексеріп көрейік, біздің нысанымыз ParentClass класына және ChildClass класына тиесілі бе:

index.php<?php
  var_dump($obj instanceof ChildClass);  // true шығарады
  var_dump($obj instanceof ParentClass); // да true шығарады
?>

Мысалдан көріп отырғаныңыздай - instanceof операторы тексеру кезінде ата-ана және бала кластары арасында айырмашылық жасамайды.

Шатастырмаңыз - егер нысан шынымен ата-ана класының болса, әрине, бала класына тиесілдігін тексеру false мәнін қайтарады:

php<?php
  $obj = new ParentClass; // ата-ана класының нысаны
  
  var_dump($obj instanceof ParentClass); // true шығарады
  var_dump($obj instanceof ChildClass);  // false шығарады
?>
Задание 1

User класын жасаңыз, оның қоғамдық қасиеттері name және surname болсын.

Задание 2

User класынан мұраға беретін және salary қасиетін қосатын Employee класын жасаңыз.

Задание 3

Қоғамдық қасиеттері name және population болған City класын жасаңыз.

Задание 4

User класының 3 нысанын, Employee класының 3 нысанын, City класының 3 нысанын жасаңыз және оларды кездейсоқ тәртіпте $arr массивіне жазыңыз.

Задание 5

$arr массивін циклмен айналып шығыңыз және User класына немесе сол кластың мұрагеріне тиесілі нысандардың name қасиеттерінің бағанын экранға шығарыңыз.

Задание 6

$arr массивін циклмен айналып шығыңыз және User класына немесе сол кластың мұрагеріне тиесілі емес нысандардың name қасиеттерінің бағанын экранға шығарыңыз.

Задание 7

$arr массивін циклмен айналып шығыңыз және User класына нақты тиесілі, яғни City класына немесе Employee класына тиесілі емес нысандардың name қасиеттерінің бағанын экранға шығарыңыз.