Vigezo katika Mbinu za Interfaces katika OOP katika PHP
Wakati wa kuelezewa mbinu katika interfaces ni muhimu kubainisha sio tu majina ya mbinu zenyewe, lakini pia vigezo vinavyokubaliwa na hizo mbinu.
Hebu tuangalie kwa mfano. Hebu tusema tuna
interface iMath, inayoelezea class
kwa operesheni za hisabati za kujumlisha, kutoa,
kuzidisha na kugawa. Hebu interface hii
iwe inaonekana hivi:
<?php
interface iMath
{
public function sum();
public function subtract();
public function multiply();
public function divide();
}
?>
Kwa sasa mbinu za interface yetu hazikubali vigezo vyovyote. Na kwa kweli mbinu za class, ambayo itatekeleza hii interface, pia haitakuwa na budi kukubali vigezo, vinginevyo kutakuwapo na makosa.
Hebu tubainishe vigezo vya mbinu katika interface yetu:
<?php
interface iMath
{
public function sum($a, $b);
public function subtract($a, $b);
public function multiply($a, $b);
public function divide($a, $b);
}
?>
Hebu sasa tuandike utekelezaji wa interface yetu:
<?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;
}
}
?>
Kama utajaribu katika class yetu kuweka idadi tofauti ya vigezo - hatuwezi hata kufanikiwa: PHP itatoa makosa. Hivyo tutaweza kuepuka kusahau kigezo fulani osisa, au kwa bahati mbaya kuongeza kile kisichohitajika.
Hebu tuseme tuna interface iUser kama hii:
<?php
interface iUser
{
public function setName($name);
public function getName();
public function setAge($age);
public function getAge();
}
?>
Tengeneza class User, ambayo
itatekeleza interface hii.