Parametri nei metodi delle interfacce in OOP in PHP
Quando si descrivono i metodi nelle interfacce, è necessario specificare non solo i nomi dei metodi stessi, ma anche i parametri che accettano.
Diamo un'occhiata a un esempio. Supponiamo di avere
l'interfaccia iMath, che descrive una classe
per operazioni matematiche di addizione, sottrazione,
moltiplicazione e divisione. Lasciamo che questa interfaccia
sia così:
<?php
interface iMath
{
public function sum();
public function subtract();
public function multiply();
public function divide();
}
?>
Attualmente i metodi della nostra interfaccia non accettano alcun parametro. E in realtà i metodi della classe che implementerà questa interfaccia, anch'essi non dovranno accettare parametri, altrimenti si verificherà un errore.
Specifichiamo ora i parametri dei metodi nella nostra interfaccia:
<?php
interface iMath
{
public function sum($a, $b);
public function subtract($a, $b);
public function multiply($a, $b);
public function divide($a, $b);
}
?>
Scriviamo ora l'implementazione della nostra interfaccia:
<?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;
}
}
?>
Se si tenta di impostare un numero diverso di parametri nella nostra classe - semplicemente non ci riusciremo: PHP genererà un errore. In questo modo non potremo né dimenticare accidentalmente un parametro, né aggiungere accidentalmente uno extra.
Supponiamo di avere questa interfaccia iUser:
<?php
interface iUser
{
public function setName($name);
public function getName();
public function setAge($age);
public function getAge();
}
?>
Crea una classe User che
implementi questa interfaccia.