PHPde ООПда 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 класын жасаңыз, ал public name жана surname касиеттерине ээ болсун.

Задание 2

Employee класын жасаңыз, ал User класынан мурасталып, salary касиетин кошсун.

Задание 3

City класын жасаңыз, ал public name жана population касиеттерине ээ болсун.

Задание 4

User класстын 3 объектин, Employee класстын 3 объектин, City класстын 3 объектин түзүп, аларды каалаган тартипте $arr массивине жазыңыз.

Задание 5

$arr массивин цикл менен аралап, User класына же анын тукумуна таандык болгон объекттердин name касиеттерин экранга тизме түрүндө чыгарыңыз.

Задание 6

$arr массивин цикл менен аралап, User класына же анын тукумуна таандык эмес болгон объекттердин name касиеттерин экранга тизме түрүндө чыгарыңыз.

Задание 7

$arr массивин цикл менен аралап, так User класына таандык болгон, башкача айтканда City класына да, Employee класына да таандык эмес болгон объекттердин name касиеттерин экранга тизме түрүндө чыгарыңыз.