PHP හි OOP හි 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 පන්තියක් සාදන්න name සහ surname.

Задание 2

Employee පන්තියක් සාදන්න, එය User පන්තියෙන් උරුම ලබා salary ගුණාංගය එක් කරයි.

Задание 3

පොදු ගුණාංග සහිත City පන්තියක් සාදන්න name සහ population.

Задание 4

User පන්තියේ වස්තු 3 ක්, Employee පන්තියේ වස්තු 3 ක්, City පන්තියේ වස්තු 3 ක් සාදන්න, සහ අහඹු අනුපිළිවෙලකින් ඒවා අරාවට ලියන්න $arr.

Задание 5

$arr අරාව ලූපයකින් හරස් කර තිරය මත name ගුණාංගවල තීරුවක් මුද්‍රණය කරන්න වස්තු, ඒවා User පන්තියට හෝ එම පන්තියේ පරම්පරාවට අයත් වේ.

Задание 6

$arr අරාව ලූපයකින් හරස් කර තිරය මත name ගුණාංගවල තීරුවක් මුද්‍රණය කරන්න වස්තු, ඒවා User පන්තියට හෝ එම පන්තියේ පරම්පරාවට අයත් නොවේ.

Задание 7

$arr අරාව ලූපයකින් හරස් කර තිරය මත name ගුණාංගවල තීරුවක් මුද්‍රණය කරන්න වස්තු, ඒවා හරියටම User පන්තියට අයත් වේ, එනම් City පන්තියට හෝ Employee පන්තියට නොවේ.