PHP-dä OOP-dä instanceof operator we miras almagyň ulanylyşy

instanceof operator ulanylanda miras almagyň aýratynlyklaryny düşüneli. Bizde ata klas we çaga klas bar:

index.php<?php
  // Ata klas:
  class ParentClass
  {
    
  }
  
  // Çaga klas:
  class ChildClass extends ParentClass
  {
    
  }
?>

Çaga klasynyň obýektini döredeli:

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

Indi instanceof kömegi bilen, obýektimiziň ParentClass klasyna we ChildClass klasyna degişlidigini barlalyň:

index.php<?php
  var_dump($obj instanceof ChildClass);  // true çykarar
  var_dump($obj instanceof ParentClass); // ýene-de true çykarar
?>

Mysaldan görşüňiz ýaly - instanceof operator barlag wagtynda ata we çaga klaslarynyň arasynda tapawut ýokar.

Çyşyňyz - eger obýekt hakykatdanam ata klasyň bolsa, şübesiz, çaga klasyň degişlidigini barlamak false gaytarar:

php<?php
  $obj = new ParentClass; // ata klasyň obýekti
  
  var_dump($obj instanceof ParentClass); // true çykarar
  var_dump($obj instanceof ChildClass);  // false çykarar
?>
Задание 1

User klasyny ýasaň, onuň ady we familiýasy bolan public aýratynlyklary bolsun.

Задание 2

Employee klasyny ýasaň, ol User klasyndan miras alsyn we goşmaça salary aýratynlygyny goşsun.

Задание 3

City klasyny ýasaň, onuň ady we ilat sany bolan public aýratynlyklary bolsun.

Задание 4

3 sany User klasyndan obýekt, 3 sany Employee klasyndan obýekt, 3 sany City klasyndan obýekt dörediň we olary erkin tertipde $arr massiwine ýazyň.

Задание 5

$arr massiwini aýlaw bilen gezip, ekrana User klasyna ýa-da oňa degişli çaga klasyna degişli bolan obýektleriň name aýratynlygynyň sütünini çykaryň.

Задание 6

$arr massiwini aýlaw bilen gezip, ekrana User klasyna ýa-da oňa degişli çaga klasyna degişli bolmadyk obýektleriň name aýratynlygynyň sütünini çykaryň.

Задание 7

$arr massiwini aýlaw bilen gezip, ekrana dogrudan-da User klasyna degişli bolan, ýagny City klasyna we Employee klasyna degişli bolmadyk obýektleriň name aýratynlygynyň sütünini çykaryň.