Parametri u metodama interfejsa u OOP u PHP

Prilikom opisa metoda u interfejsima, potrebno je naznačiti ne samo imena samih metoda, već i parametre koje oni prihvataju.

Pogledajmo na primeru. Neka imamo interfejs iMath, koji opisuje klasu za matematičke operacije sabiranja, oduzimanja, množenja i deljenja. Neka ovaj interfejs izgleda ovako:

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

Trenutno metode našeg interfejsa ne prihvataju nijedan parametar. I zapravo, metode klase koja će implementirati ovaj interfejs, takođe neće smeti da prihvataju parametre, inače će biti greške.

Hajde da navedemo parametre metoda u našem interfejsu:

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

Napišimo sada implementaciju našeg interfejsa:

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

Ako pokušamo u našoj klasi da postavimo drugačiji broj parametara - jednostavno nam to neće uspeti: PHP će prijaviti grešku. Na taj način nećemo moći ni da slučajno zaboravimo neki parametar, niti da slučajno dodamo suvišan.

Задание 1

Neka nam je dat ovakav interfejs iUser:

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

Napravite klasu User, koja će implementirati ovaj interfejs.