Parametri în metodele interfețelor în OOP în PHP

La descrierea metodelor în interfețe este necesar să indicăm nu numai numele metodelor în sine, ci și parametrii pe care îi acceptă.

Să vedem un exemplu. Să presupunem că avem interfața iMath, care descrie o clasă pentru operațiile matematice de adunare, scădere, înmulțire și împărțire. Să presupunem că această interfață arată astfel:

iMath.php<?php
  interface iMath
  {
    public function sum();
    public function subtract();
    public function multiply();
    public function divide();
  }
?>

În acest moment, metodele interfeței noastre nu acceptă nicieni parametri. Și, de fapt, metodele clasei care va implementa această interfață, de asemenea, nu ar trebui să accepte parametri, altfel va apărea o eroare.

Să specificăm parametrii metodelor în interfața noastră:

iMath.php<?php
  interface iMath
  {
    public function sum($a, $b);
    public function subtract($a, $b);
    public function multiply($a, $b);
    public function divide($a, $b);
  }
?>

Să scriem acum implementarea interfeței noastre:

Math.php<?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;
    }
  }
?>

Dacă încercăm în clasa noastră să setăm un număr diferit de parametri - pur și simplu nu vom reuși: PHP va afișa o eroare. Astfel, nu vom putea nici să uităm din greșeală vreun parametru, nici să adăugăm accidental unul în plus.

Задание 1

Să presupunem că avem următoarea interfață iUser:

php<?php
  interface iUser
  {
    public function setName($name);
    public function getName();
    public function setAge($age);
    public function getAge();
  }
?>

Creați o clasă User care va implementa această interfață.