Parametere i metoder for grensesnitt i OOP i PHP
Ved beskrivelse av metoder i grensesnitt må man angi ikke bare navnene på metodene selv, men også parameterne de tar imot.
La oss se på et eksempel. Anta at vi har
et grensesnitt iMath som beskriver en klasse
for matematiske operasjoner addisjon, subtraksjon,
multiplikasjon og divisjon. La dette grensesnittet
se slik ut:
<?php
interface iMath
{
public function sum();
public function subtract();
public function multiply();
public function divide();
}
?>
For øyeblikket tar ikke metodene i vårt grensesnitt imot noen parametere. Og faktisk, metodene til klassen som implementerer dette grensesnittet, vil heller ikke kunne ta imot parametere, ellers vil det oppstå en feil.
La oss angi parameterne for metodene i vårt grensesnitt:
<?php
interface iMath
{
public function sum($a, $b);
public function subtract($a, $b);
public function multiply($a, $b);
public function divide($a, $b);
}
?>
La oss nå skrive implementasjonen av vårt grensesnitt:
<?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 prøver å angi et annet antall parametere i klassen vår - vil det rett og slett ikke lykkes: PHP vil gi en feil. På denne måten kan vi verken ved et uhell glemme noen parameter, eller ved et uhell legge til en ekstra.
Anta at vi har et slikt grensesnitt iUser:
<?php
interface iUser
{
public function setName($name);
public function getName();
public function setAge($age);
public function getAge();
}
?>
Lag en klasse User som vil
implementere dette grensesnittet.