PHP da OOP da Interfeyslar metodlaridagi parametrlar

Interfeyslarda metodlarni tasvirlashda nafaqat metodlarning o'z nomlarini, balki ular qabul qiladigan parametrlarni ham ko'rsatish kerak.

Keling, bir misolni ko'rib chiqaylik. Faraz qilaylik, bizda matematik qo'shish, ayirish, ko'paytirish va bo'lish amallari uchun klassni tasvirlovchi iMath interfeysi mavjud. Faraz qilaylik, bu interfeys quyidagicha ko'rinsin:

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

Hozircha bizning interfeysimizning metodlari hech qanday parametr qabul qilmaydi. Aslida, bu interfeysni amalga oshiradigan klassning metodlari ham parametr qabul qilmasligi kerak, aks holda xatolik yuz beradi.

Keling, interfeysimizdagi metodlar parametrlarini ko'rsatamiz:

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

Keling, endi interfeysimizni amalga oshiradigan klass yozamiz:

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

Agar klassimizda boshqa miqdordagi parametrlarni belgilashga harakat qilsak - bu oddiygina amalga oshmaydi: PHP xatolik qaytaradi. Shunday qilib biz na tasodifan biron bir parametrni unutishimiz, na tasodifan ortiqcha parametr qo'shishimiz mumkin emas.

Задание 1

Faraz qilaylik, bizda quyidagi iUser interfeysi mavjud:

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

Ushbu interfeysni amalga oshiradigan User klasini yarating.