Parametri v metodah vmesnikov v OOP v PHP
Pri opisovanju metod v vmesnikih je potrebno določiti ne le imena samih metod, ampak tudi parametre, ki jih sprejemajo.
Poglejmo si na primeru. Recimo, da imamo
vmesnik iMath, ki opisuje razred
za matematične operacije seštevanja, odštevanja,
množenja in deljenja. Naj bo ta vmesnik
viden takole:
<?php
interface iMath
{
public function sum();
public function subtract();
public function multiply();
public function divide();
}
?>
Trenutno metode našega vmesnika ne sprejemajo nikakršnih parametrov. In pravzaprav metode razreda, ki bo implementiral ta vmesnik, prav tako ne smejo sprejemati parametrov, sicer bo prišlo do napake.
Določimo parametre metod v našem vmesniku:
<?php
interface iMath
{
public function sum($a, $b);
public function subtract($a, $b);
public function multiply($a, $b);
public function divide($a, $b);
}
?>
Zapišimo zdaj implementacijo našega vmesnika:
<?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;
}
}
?>
Če bi poskušali v našem razredu določiti drugačno količino parametrov - nam tega preprosto ne bi uspelo: PHP bi izdal napako. Tako ne bomo mogli niti po naključju pozabiti katerega parametra, niti po naključju dodati odvečnega.
Recimo, da imamo dan tak vmesnik iUser:
<?php
interface iUser
{
public function setName($name);
public function getName();
public function setAge($age);
public function getAge();
}
?>
Naredite razred User, ki bo
implementiral ta vmesnik.