PHP OOP တွင် Interface Methods များအတွက် Parameters များ

Interface များတွင် method များကို ဖော်ပြရာတွင် method အမည်များသာမက ယင်းတို့ လက်ခံသည့် parameter များကိုလည်း ဖော်ပြရန်လိုအပ်ပါသည်။

ဥပမာတစ်ခုဖြင့် ကြည့်ကြပါစို့။ ကျွန်ုပ်တို့တွင် ပေါင်းခြင်း၊ နုတ်ခြင်း၊ မြှောက်ခြင်း၊ စားခြင်း စသော သင်္ချာအလုပ်များအတွက် class ကိုဖော်ပြသည့် iMath interface ရှိသည်ဆိုပါစို့။ ထို interface သည် အောက်ပါအတိုင်းဖြစ်ပါစေ:

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

လောလောဆယ် ကျွန်ုပ်တို့၏ interface method များသည် မည်သည့် parameter ကိုမှ လက်ခံခြင်းမရှိပါ။ တကယ်တော့ ဤ interface ကို အကောင်အထည်ဖော်မည့် class ၏ method များသည်လည်း parameter များကို လက်ခံခြင်းမရှိသင့်ပါ၊ မဟုတ်ပါက error တက်မည်ဖြစ်သည်။

ယခု ကျွန်ုပ်တို့၏ interface တွင် method များ၏ parameter များကို ဖော်ပြကြပါစို့:

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);
  }
?>

ယခု ကျွန်ုပ်တို့၏ interface အတွက် အကောင်အထည်ဖော်ချက် (class implementation) ကို ရေးကြည့်ပါမည်:

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;
    }
  }
?>

ကျွန်ုပ်တို့၏ class တွင် parameter အရေအတွက် အခြားတစ်မျိုး သတ်မှတ်ရန် ကြိုးစားပါက - ကျွန်ုပ်တို့ လုပ်နိုင်မည် မဟုတ်ပါ: PHP က error ပြန်ပေးမည်ဖြစ်သည်။ ဤနည်းဖြင့် parameter တစ်ခုခုကို မတော်တဆ မေ့ကျန်ခြင်း သို့မဟုတ် ပိုနေသည့် parameter ထည့်မိခြင်းတို့မှ ကာကွယ်နိုင်မည် ဖြစ်သည်။

Задание 1

ကျွန်ုပ်တို့တွင် အောက်ပါအတိုင်းသော iUser interface တစ်ခုရှိသည်ဆိုပါစို့:

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

ဤ interface ကို အကောင်အထည်ဖော်မည့် User class ကို ပြုလုပ်ပါ။