Parametry v metodách rozhraní v OOP v PHP

Při popisu metod v rozhraních je nutné uvádět nejen názvy samotných metod, ale také parametry, které přijímají.

Podívejme se na příklad. Předpokládejme, že máme rozhraní iMath, které popisuje třídu pro matematické operace sčítání, odčítání, násobení a dělení. Předpokládejme, že toto rozhraní bude vypadat takto:

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

Nyní metody našeho rozhraní nepřijímají žádné parametry. A ve skutečnosti metody třídy, která toto rozhraní bude implementovat, také nebudou moci přijímat parametry, jinak dojde k chybě.

Pojďme nyní určit parametry metod v našem rozhraní:

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);
  }
?>

Nyní napišme implementaci našeho rozhraní:

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;
    }
  }
?>

Pokud se v naší třídě pokusíme nastavit jiný počet parametrů - jednoduše se nám to nepodaří: PHP vypíše chybu. Tímto způsobem nemůžeme ani omylem zapomenout nějaký parametr, ani omylem přidat nadbytečný.

Задание 1

Předpokládejme, že máme dané toto rozhraní iUser:

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

Vytvořte třídu User, která bude implementovat toto rozhraní.