PHPde ООПда instanceof оператору жана мурастоо
instanceof операторун колдонгондо мурастоонун өзгөчөлүктөрүн карап чыгалы. Ата-эне класыбыз жана балдар класыбыз болсун:
<?php
// Ата-эне класы:
class ParentClass
{
}
// Балдар класы:
class ChildClass extends ParentClass
{
}
?>
Балдар класстын объектисин түзөлү:
<?php
$obj = new ChildClass;
?>
Эми instanceof жардамы менен биздин объектибиз ParentClass классына жана ChildClass классына таандыкпы же жокпу текшерип көрөлү:
<?php
var_dump($obj instanceof ChildClass); // true чыгарат
var_dump($obj instanceof ParentClass); // дагы true чыгарат
?>
Мисалдан көрүнүп тургандай - instanceof оператору текшерүү жүргүзгөндө ата-эне жана балдар класстарынын ортосунда айырмачылык кылбайт.
Адашпаңыз - эгер объект чынында эле ата-эне класстын болсо, анда албетте балдар класска таандыкпы деген текшерүү false кайтарат:
<?php
$obj = new ParentClass; // ата-эне класстын объектиси
var_dump($obj instanceof ParentClass); // true чыгарат
var_dump($obj instanceof ChildClass); // false чыгарат
?>
User класын жасаңыз, ал public name жана surname касиеттерине ээ болсун.
Employee класын жасаңыз, ал User класынан мурасталып, salary касиетин кошсун.
City класын жасаңыз, ал public name жана population касиеттерине ээ болсун.
User класстын 3 объектин, Employee класстын 3 объектин, City класстын 3 объектин түзүп, аларды каалаган тартипте $arr массивине жазыңыз.
$arr массивин цикл менен аралап, User класына же анын тукумуна таандык болгон объекттердин name касиеттерин экранга тизме түрүндө чыгарыңыз.
$arr массивин цикл менен аралап, User класына же анын тукумуна таандык эмес болгон объекттердин name касиеттерин экранга тизме түрүндө чыгарыңыз.
$arr массивин цикл менен аралап, так User класына таандык болгон, башкача айтканда City класына да, Employee класына да таандык эмес болгон объекттердин name касиеттерин экранга тизме түрүндө чыгарыңыз.