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:
<?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:
<?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:
<?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.
Faraz qilaylik, bizda quyidagi iUser interfeysi mavjud:
<?php
interface iUser
{
public function setName($name);
public function getName();
public function setAge($age);
public function getAge();
}
?>
Ushbu interfeysni amalga oshiradigan User
klasini yarating.