PHP da OOP da instanceof operatori va meros olish

Keling, instanceof operatoridan foydalanganda meros olishning xususiyatlarini ko'rib chiqaylik. Faraz qilaylik, bizda ota-ona klassi va farzand klassi bor:

index.php<?php
  // Ota-ona klassi:
  class ParentClass
  {
    
  }
  
  // Farzand klassi:
  class ChildClass extends ParentClass
  {
    
  }
?>

Farzand klassining ob'ektini yaratamiz:

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

Endi instanceof yordamida tekshiramiz, bizning ob'ektimiz ParentClass klasiga va ChildClass klasiga tegishlimi yoki yo'q:

index.php<?php
  var_dump($obj instanceof ChildClass);  // true chiqaradi
  var_dump($obj instanceof ParentClass); // ham true chiqaradi
?>

Misoldan ko'rib turganingizdek - instanceof operatori tekshirish paytida ota-ona va farzand klasslari o'rtasida farq qilmaydi.

Chalkashmang - agar ob'ekt haqiqatan ham ota-ona klassining bo'lsa, albatta, tekshirish farzand klasiga tegishliligi uchun false qaytaradi:

php<?php
  $obj = new ParentClass; // ota-ona klassining ob'ekti
  
  var_dump($obj instanceof ParentClass); // true chiqaradi
  var_dump($obj instanceof ChildClass);  // false chiqaradi
?>
Задание 1

User klassini yarating, uning public xususiyatlari name va surname bo'lsin.

Задание 2

User klasidan meros oladigan Employee klassini yarating, unga salary xususiyatini qo'shing.

Задание 3

City klassini yarating, uning public xususiyatlari name va population bo'lsin.

Задание 4

User klassining 3 ta ob'ektini, Employee klassining 3 ta ob'ektini, City klassining 3 ta ob'ektini yarating va ularni ixtiyoriy tartibda $arr massiviga yozing.

Задание 5

$arr massivini tsikl bilan aylantiring va ekranda User klasiga yoki shu klasning merdavchisiga tegishli bo'lgan ob'ektlarning name xususiyatlarini ustun ko'rinishida chiqaring.

Задание 6

$arr massivini tsikl bilan aylantiring va ekranda User klasiga yoki shu klasning merdavchisiga tegishli bo'lmagan ob'ektlarning name xususiyatlarini ustun ko'rinishida chiqaring.

Задание 7

$arr massivini tsikl bilan aylantiring va ekranda aniq User klasiga tegishli bo'lgan, ya'ni City klasiga ham, Employee klasiga ham tegishli bo'lmagan ob'ektlarning name xususiyatlarini ustun ko'rinishida chiqaring.