PHP-তে OOP-তে ইন্টারফেস পদ্ধতিতে প্যারামিটার

ইন্টারফেসে পদ্ধতি বর্ণনা করার সময় শুধুমাত্র পদ্ধতির নামই নয়, তারা যে প্যারামিটার গ্রহণ করে তাও নির্দিষ্ট করতে হবে।

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

iMath.php<?php
  interface iMath
  {
    public function sum();
    public function subtract();
    public function multiply();
    public function divide();
  }
?>

এখন আমাদের ইন্টারফেসের পদ্ধতিগুলি কোনো প্যারামিটার গ্রহণ করছে না। এবং বাস্তবে, যে ক্লাস এই ইন্টারফেসটি বাস্তবায়ন করবে তার পদ্ধতিগুলিও কোনো প্যারামিটার গ্রহণ করতে পারবে না, নাহলে একটি ত্রুটি দেখা দেবে।

আসুন আমাদের ইন্টারফেসে পদ্ধতিগুলির প্যারামিটার নির্দিষ্ট করি:

iMath.php<?php
  interface iMath
  {
    public function sum($a, $b);
    public function subtract($a, $b);
    public function multiply($a, $b);
    public function divide($a, $b);
  }
?>

এখন আমাদের ইন্টারফেসের বাস্তবায়ন লিখি:

Math.php<?php
  class Math implements iMath
  {
    public function sum($a, $b)
    {
      return $a + $b;
    }
    
    public function subtract($a, $b)
    {
      return $a - $b;
    }
    
    public function multiply($a, $b)
    {
      return $a * $b;
    }
    
    public function divide($a, $b)
    {
      return $a / $b;
    }
  }
?>

যদি আমাদের ক্লাসে ভিন্ন সংখ্যক প্যারামিটার নির্দিষ্ট করার চেষ্টা করা হয় - আমাদের পক্ষে এটি simply সম্ভব হবে না: PHP একটি ত্রুটি দেবে। এইভাবে আমরা neither accidentally কোনো প্যারামিটার ভুলতে পারব, nor accidentally কোনো অতিরিক্ত প্যারামিটার যোগ করতে পারব।

Задание 1

ধরা যাক আমাদের কাছে iUser这样一个 ইন্টারফেস দেওয়া আছে:

php<?php
  interface iUser
  {
    public function setName($name);
    public function getName();
    public function setAge($age);
    public function getAge();
  }
?>

User这样一个 ক্লাস তৈরি করুন, যা এই ইন্টারফেসটি বাস্তবায়ন করবে।