PHP-тегі 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 класын жасаңыз, оның қоғамдық қасиеттері
name және surname болсын.
User класынан мұраға беретін және
salary қасиетін қосатын Employee класын жасаңыз.
Қоғамдық қасиеттері name және population болған
City класын жасаңыз.
User класының 3 нысанын,
Employee класының 3 нысанын,
City класының 3 нысанын жасаңыз және оларды
кездейсоқ тәртіпте $arr массивіне жазыңыз.
$arr массивін циклмен айналып шығыңыз және
User класына немесе сол кластың мұрагеріне тиесілі
нысандардың name қасиеттерінің бағанын экранға шығарыңыз.
$arr массивін циклмен айналып шығыңыз және
User класына немесе сол кластың мұрагеріне тиесілі емес
нысандардың name қасиеттерінің бағанын экранға шығарыңыз.
$arr массивін циклмен айналып шығыңыз және
User класына нақты тиесілі, яғни City класына
немесе Employee класына тиесілі емес
нысандардың name қасиеттерінің бағанын экранға шығарыңыз.