Operatori instanceof dhe Trashëgimia në OOP në PHP

Le të shqyrtojmë veçoritë e trashëgimisë kur përdoret operatori instanceof. Le të themi se kemi një klasë prind dhe një klasë fëmijë:

index.php<?php
  // Klasa prind:
  class ParentClass
  {
    
  }
  
  // Klasa fëmijë:
  class ChildClass extends ParentClass
  {
    
  }
?>

Le të krijojmë një objekt të klasës fëmijë:

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

Tani le të kontrollojmë duke përdorur instanceof, nëse objekti ynë i përket klasës ParentClass dhe klasës ChildClass:

index.php<?php
  var_dump($obj instanceof ChildClass);  // do të shfaqë true
  var_dump($obj instanceof ParentClass); // gjithashtu do të shfaqë true
?>

Siç e shihni nga shembulli - operatori instanceof nuk bën dallim gjatë kontrollit midis klasave prind dhe fëmijë.

Mos u ngatërroni - nëse objekti do të jetë me të vërtetë i klasës prind, atëherë, sigurisht, kontrolli për përkatësinë në klasën fëmijë do të kthejë false:

php<?php
  $obj = new ParentClass; // objekt i klasës prind
  
  var_dump($obj instanceof ParentClass); // do të shfaqë true
  var_dump($obj instanceof ChildClass);  // do të shfaqë false
?>
Задание 1

Krijoni një klasë User me vetitë publike name dhe surname.

Задание 2

Krijoni një klasë Employee, e cila do të trashëgojë nga klasa User dhe do të shtojë vetinë salary.

Задание 3

Krijoni një klasë City me vetitë publike name dhe population.

Задание 4

Krijoni 3 objekte të klasës User, 3 objekte të klasës Employee, 3 objekte të klasës City, dhe në mënyrë të rastësishme shkruajini ato në array $arr.

Задание 5

Kaloni nëpër array $arr me lak dhe shfaqni në ekran një kolonë të vetive name të atyre objekteve që i përkasin klasës User ose pasardhësve të kësaj klase.

Задание 6

Kaloni nëpër array $arr me lak dhe shfaqni në ekran një kolonë të vetive name të atyre objekteve që nuk i përkasin klasës User ose pasardhësve të kësaj klase.

Задание 7

Kaloni nëpër array $arr me lak dhe shfaqni në ekran një kolonë të vetive name të atyre objekteve që i përkasin pikërisht klasës User, domethënë jo klasës City dhe jo klasës Employee.