PHP-də OOP-də instanceof operatoru və irs

Gəlin instanceof operatorundan istifadə edərkən irsin xüsusiyyətlərini nəzərdən keçirək. Tutaq ki, bizim valideyn sinif və uşaq sinif var:

index.php<?php
  // Valideyn sinif:
  class ParentClass
  {
    
  }
  
  // Uşaq sinif:
  class ChildClass extends ParentClass
  {
    
  }
?>

Gəlin uşaq sinifindən bir obyekt yaradaq:

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

İndi instanceof köməyi ilə yoxlayaq, obyektimizin ParentClass sinfinə və ChildClass sinfinə aid olub-olmadığını:

index.php<?php
  var_dump($obj instanceof ChildClass);  // true çap edəcək
  var_dump($obj instanceof ParentClass); // həmçinin true çap edəcək
?>

Nümunədən gördüyünüz kimi - instanceof operatoru yoxlama zamanı valideyn və uşaq sinifləri arasında fərq qoymur.

Səhv etməyin - əgər obyekt həqiqətən də valideyn sinfindən olarsa, onda, əlbəttə ki, uşaq sinfinə aid olmasını yoxlamaq false qaytaracaq:

php<?php
  $obj = new ParentClass; // valideyn sinfinin obyekti
  
  var_dump($obj instanceof ParentClass); // true çap edəcək
  var_dump($obj instanceof ChildClass);  // false çap edəcək
?>
Задание 1

User sinfi yaradın, onun public xüsusiyyətləri name və surname olsun.

Задание 2

User sinfindən miras alan və salary xüsusiyyəti əlavə edən Employee sinfini yaradın.

Задание 3

Public xüsusiyyətləri name və population olan City sinfini yaradın.

Задание 4

User sinfindən 3 obyekt, Employee sinfindən 3 obyekt, City sinfindən 3 obyekt yaradın və onları ixtiyari qaydada $arr massivinə yazın.

Задание 5

$arr massivini tsikl ilə dolaşın və ekranda User sinfinə və ya bu sinfin varisinə aid olan obyektlərin name xüsusiyyətlərini sütun şəklində çap edin.

Задание 6

$arr massivini tsikl ilə dolaşın və ekranda User sinfinə və ya bu sinfin varisinə aid olmayan obyektlərin name xüsusiyyətlərini sütun şəklində çap edin.

Задание 7

$arr massivini tsikl ilə dolaşın və ekranda dəqiq User sinfinə aid olan, yəni nə City sinfinə nə də Employee sinfinə aid olmayan obyektlərin name xüsusiyyətlərini sütun şəklində çap edin.