কম্পিউটার

PHP-এ ইন্টারফেস ব্যাখ্যা কর।


এই নিবন্ধে, আমরা কীভাবে পিএইচপি ইন্টারফেসটি ব্যবহার করব তা খুঁজে বের করব যা পিএইচপি অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিংয়ের সবচেয়ে উল্লেখযোগ্য কাঠামোর প্যাটার্নগুলির মধ্যে একটি।

একটি ইন্টারফেস আমাদেরকে প্রোগ্রামগুলি তৈরি করতে সক্ষম করে, নির্দিষ্ট পদ্ধতিগুলি কীভাবে প্রয়োগ করা হয় তার জটিলতা এবং পদ্ধতি অন্তর্ভুক্ত না করেই, একটি শ্রেণিকে কার্যকর করতে হবে এমন সর্বজনীন পদ্ধতিগুলি নির্দেশ করে। এটি বোঝায় যে একটি ইন্টারফেস পদ্ধতির নাম এবং আর্গুমেন্ট সংজ্ঞায়িত করতে পারে, কিন্তু পদ্ধতির বিষয়বস্তু নয়। ইন্টারফেস বাস্তবায়নকারী যেকোন ক্লাসকে অবশ্যই ইন্টারফেসের দ্বারা সংজ্ঞায়িত সমস্ত পদ্ধতি প্রয়োগ করতে হবে।

ইন্টারফেসগুলিকে ক্লাস হিসাবে একইভাবে চিহ্নিত করা হয়, তবে, শুধুমাত্র ইন্টারফেস কীওয়ার্ডটি ঘোষণায় এবং তাদের বিষয়বস্তু সংজ্ঞায়িত করার কোনো পদ্ধতি ছাড়াই ক্লাসের বাক্যাংশটিকে প্রতিস্থাপন করে।

উদাহরণ

আসুন একটি ইন্টারফেস তৈরি করি এবং একটি সাধারণ উদাহরণ দিয়ে এটি বাস্তবায়ন করি।

<?php
   Interface MyInterface {
      public function getName();
      public function getAge();
   }
   class MyClass implements MyFirstInterface{
      public function getName() {
            echo "My name A".'<br>';
      }
      public function getAge(){
            echo "My Age 12";
      }
   }
   $obj = new MyClass;
   $obj->getName();
   $obj->getAge();
?>

আউটপুট:

My name A
My Age 12

ব্যাখ্যা:

এখানে আমরা একটি ইন্টারফেস MyFirstInterface ঘোষণা করেছি যার ভিতরে দুটি পদ্ধতি আছে getName এবং getAge কোন বিষয়বস্তু ছাড়াই। তারপর ক্লাস MyClass এই ইন্টারফেসটি প্রয়োগ করে এবং প্রয়োজন অনুসারে উপলব্ধ পদ্ধতিগুলি ব্যবহার করে।

চলুন জেনে নিই ইন্টারফেসের কিছু গুরুত্বপূর্ণ বৈশিষ্ট্য:

  • একটি ইন্টারফেস এমন পদ্ধতি নিয়ে গঠিত যার কোন বিষয়বস্তু নেই, যার মানে ইন্টারফেস পদ্ধতি হল বিমূর্ত পদ্ধতি।
  • ইন্টারফেসের প্রতিটি পদ্ধতির অবশ্যই সর্বজনীন দৃশ্যমানতার সুযোগ থাকতে হবে।
  • ইন্টারফেসগুলি ক্লাসের মতো একেবারে একই নয় যেভাবে ক্লাস একটি ক্লাস থেকে উত্তরাধিকার সূত্রে প্রাপ্ত হতে পারে তবে ক্লাসটি এক বা একাধিক ইন্টারফেস প্রয়োগ করতে পারে৷
  • ইন্টারফেসের ভিতরে কোন ভেরিয়েবল থাকতে পারে না।

দ্রষ্টব্য:

আমরা ইন্টারফেস ব্যবহার করে একাধিক উত্তরাধিকার অর্জন করতে পারি কারণ একটি শ্রেণী একাধিক ইন্টারফেস বাস্তবায়ন করতে পারে যেখানে এটি শুধুমাত্র একটি শ্রেণী প্রসারিত করতে পারে।

উদাহরণ

একটি সহজ উদাহরণ দিয়ে এটি পরীক্ষা করা যাক।

<?php
   interface a{
      public function printData();
   }
   interface b{
      public function getData();
   }
   interface c extends a, b{
      public function addData();
   }
   class d implements c{
      public function printData(){
         echo "I am printing";
      }
      public function getData(){
         echo "I am reading data";
      }
      public function addData(){
         echo "I am adding"
      }
   }
   $myobj = new class d();
   $myobj->printData();
   $myobj->addData();
?>

আউটপুট:

I am printing
I am adding

ব্যাখ্যা:

এখানে আমরা তিনটি ইন্টারফেস ঘোষণা করেছি যেমন 'ইন্টারফেস এ', 'ইন্টারফেস বি', 'ইন্টারফেস সি'। এক্ষেত্রে ইন্টারফেস সি আগের দুটি ইন্টারফেসকেও প্রসারিত করে। তারপরে আমরা একটি ক্লাস ঘোষণা করেছি যা শুধুমাত্র ইন্টারফেস সি প্রয়োগ করে, কিন্তু ইন্টারফেস সি আগের দুটি ইন্টারফেসকে প্রসারিত করে, 'ইন্টারফেস এ', 'ইন্টারফেস বি' এবং 'ইন্টারফেস সি'-তে ঘোষিত সমস্ত পদ্ধতি ক্লাসে ব্যবহারের জন্য উপলব্ধ। d এইভাবে আমরা ইন্টারফেস প্রয়োগ করে একাধিক উত্তরাধিকার অর্জন করতে পারি।


  1. PHP-তে Encapsulation ব্যাখ্যা কর।

  2. পিএইচপি-তে বিমূর্ত শ্রেণী ব্যাখ্যা কর।

  3. পিএইচপি-তে চূড়ান্ত শ্রেণী ও চূড়ান্ত পদ্ধতি ব্যাখ্যা কর।

  4. জাভাতে ইন্টারফেস