Parametre i interfacemetoder i OOP i PHP
Ved beskrivelse af metoder i interfaces skal man angive ikke kun navnene på metoderne selv, men også de parametre, de accepterer.
Lad os se på et eksempel. Antag, at vi har
et interface iMath, der beskriver en klasse
for matematiske operationer: addition, subtraktion,
multiplikation og division. Lad dette interface
se sådan ud:
<?php
interface iMath
{
public function sum();
public function subtract();
public function multiply();
public function divide();
}
?>
I øjeblikket accepterer metoderne i vores interface ingen parametre. Og faktisk skal metoderne i klassen, der vil implementere dette interface, heller ikke acceptere parametre, ellers vil der opstå en fejl.
Lad os angive parametrene for metoderne i vores interface:
<?php
interface iMath
{
public function sum($a, $b);
public function subtract($a, $b);
public function multiply($a, $b);
public function divide($a, $b);
}
?>
Lad os nu skrive implementationen af vores interface:
<?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;
}
}
?>
Hvis man forsøger at angive et andet antal parametre i vores klasse - vil det simpelthen ikke lykkes: PHP vil give en fejl. På denne måde kan vi hverken ved et uheld glemme en parameter, eller ved et uheld tilføje en ekstra.
Antag, at vi har følgende interface iUser:
<?php
interface iUser
{
public function setName($name);
public function getName();
public function setAge($age);
public function getAge();
}
?>
Lav en klasse User, som vil
implementere dette interface.