Պարամետրերը ինտերֆեյսների մեթոդներում OOP-ում PHP-ում

Ինտերֆեյսներում մեթոդները նկարագրելիս անհրաժեշտ է նշել ոչ միայն բուն մեթոդների անունները, այլև նրանց կողմից ընդունվող պարամետրերը:

Դիտարկենք օրինակով: Ենթադրենք մենք ունենք iMath ինտերֆեյս, որը նկարագրում է դաս մաթեմատիկական գործողությունների համար՝ գումարում, հանում, բազմապատկում և բաժանում: Ենթադրենք, որ այդ ինտերֆեյսը ունի հետևյալ տեսքը.

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

Այժմ մեր ինտերֆեյսի մեթոդները չեն ընդունում ոչ մի պարամետր: Եվ իրականում, դասի մեթոդները, որը կիրականացնի այս ինտերֆեյսը, նույնպես չպետք է ընդունեն պարամետրեր, հակառակ դեպքում կառաջանա սխալ:

Եկեք նշենք մեր ինտերֆեյսի մեթոդների պարամետրերը.

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

Հիմա գրենք մեր ինտերֆեյսի իրականացումը.

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

Եթե փորձենք մեր դասում նշել տարբեր քանակի պարամետրեր - մեզ դա պարզապես չի հաջողվի. PHP-ն կտա սխալ: Այսպիսով, մենք չենք կարող ոչ պատահականորեն մոռանալ որևէ պարամետր, ոչ էլ պատահականորեն ավելացնել ավելորդ պարամետր:

Задание 1

Ենթադրենք մեզ տրված է հետևյալ iUser ինտերֆեյսը.

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

Ստեղծեք User դաս, որը կիրականացնի տրված ինտերֆեյսը: