instanceof অপারেটর এবং PHP-তে OOP-তে ইনহেরিটেন্স

আসুন 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 ক্লাসের নয়।