Параметри в методите на интерфейси в ООП в PHP
При описване на методи в интерфейси е необходимо да се указват не само имената на самите методи, но и приеманите от тях параметри.
Нека да разгледаме пример. Нека имаме
интерфейс iMath, описващ клас
за математически операции събиране, изваждане,
умножение и деление. Нека този интерфейс
изглежда така:
<?php
interface iMath
{
public function sum();
public function subtract();
public function multiply();
public function divide();
}
?>
В момента методите на нашия интерфейс не приемат никакви параметри. И всъщност методите на класа, който ще имплементира този интерфейс, също не трябва да приемат параметри, в противен случай ще има грешка.
Нека укажем параметрите на методите в нашия интерфейс:
<?php
interface iMath
{
public function sum($a, $b);
public function subtract($a, $b);
public function multiply($a, $b);
public function divide($a, $b);
}
?>
Нека сега напишем имплементацията на нашия интерфейс:
<?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;
}
}
?>
Ако се опитаме в нашия клас да зададем различен брой параметри - при нас това просто няма да се получи: PHP ще даде грешка. По този начин ние няма да можем нито случайно да забравим някой параметър, нито случайно да добавим излишен.
Нека ни е даден такъв интерфейс iUser:
<?php
interface iUser
{
public function setName($name);
public function getName();
public function setAge($age);
public function getAge();
}
?>
Направете клас User, който ще
имплементира дадения интерфейс.