Parametry w metodach interfejsów w OOP w PHP
Przy opisywaniu metod w interfejsach konieczne jest określenie nie tylko nazw samych metod, ale także przyjmowanych przez nie parametrów.
Spójrzmy na przykład. Załóżmy, że mamy
interfejs iMath, opisujący klasę
dla operacji matematycznych dodawania, odejmowania,
mnożenia i dzielenia. Niech ten interfejs
będzie wyglądał tak:
<?php
interface iMath
{
public function sum();
public function subtract();
public function multiply();
public function divide();
}
?>
Obecnie metody naszego interfejsu nie przyjmują żadnych parametrów. I faktycznie metody klasy, która będzie implementować ten interfejs, również nie będą mogły przyjmować parametrów, inaczej wystąpi błąd.
Określmy parametry metod w naszym interfejsie:
<?php
interface iMath
{
public function sum($a, $b);
public function subtract($a, $b);
public function multiply($a, $b);
public function divide($a, $b);
}
?>
Napiszmy teraz implementację naszego interfejsu:
<?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;
}
}
?>
Jeśli spróbujemy w naszej klasie ustawić inną liczbę parametrów - po prostu nam się nie uda: PHP zwróci błąd. W ten sposób nie będziemy mogli ani przypadkowo zapomnieć jakiegoś parametru, ani przypadkowo dodać zbędnego.
Załóżmy, że mamy taki interfejs iUser:
<?php
interface iUser
{
public function setName($name);
public function getName();
public function setAge($age);
public function getAge();
}
?>
Stwórz klasę User, która będzie
implementować ten interfejs.