PHP හි OOP හි 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.
Employee පන්තියක් සාදන්න, එය
User පන්තියෙන් උරුම ලබා
salary ගුණාංගය එක් කරයි.
පොදු ගුණාංග සහිත
City පන්තියක් සාදන්න
name සහ population.
User පන්තියේ වස්තු 3 ක්,
Employee පන්තියේ වස්තු 3 ක්,
City පන්තියේ වස්තු 3 ක් සාදන්න, සහ
අහඹු අනුපිළිවෙලකින් ඒවා අරාවට
ලියන්න
$arr.
$arr අරාව ලූපයකින් හරස් කර
තිරය මත name ගුණාංගවල තීරුවක්
මුද්රණය කරන්න
වස්තු, ඒවා User පන්තියට
හෝ එම පන්තියේ පරම්පරාවට අයත් වේ.
$arr අරාව ලූපයකින් හරස් කර
තිරය මත name ගුණාංගවල තීරුවක්
මුද්රණය කරන්න
වස්තු, ඒවා User පන්තියට
හෝ එම පන්තියේ පරම්පරාවට අයත් නොවේ.
$arr අරාව ලූපයකින් හරස් කර
තිරය මත name ගුණාංගවල තීරුවක්
මුද්රණය කරන්න
වස්තු, ඒවා හරියටම User පන්තියට අයත් වේ,
එනම් City පන්තියට
හෝ Employee පන්තියට නොවේ.