Razred kot niz metod v OOP v PHP

Včasih se razredi uporabljajo za združevanje metod podobne tematike. V tem primeru se praviloma ustvari samo en objekt tega razreda in njegove metode se večkrat uporabijo v različnih situacijah.

Poglejmo si na primeru. Naredimo razred, ki bo manipuliral z nizi števil:

php<?php
  class ArrHelper {
    
  }
?>

Vsaka metoda tega razreda bo parameter sprejela niz in izvedla njim določeno operacijo. Naj imamo, na primer, naslednje metode:

php<?php
  class ArrHelper {
    public function getSum($arr) {
      // vsota elementov
    }
    
    public function getAvg($arr) {
      // aritmetična sredina
    }
  }
?>

Napišimo implementacijo teh metod:

php<?php
  class ArrHelper {
    public function getSum($arr) {
      $res = 0;
      
      foreach ($arr as $num) {
        $res += $num;
      }
      
      return $res;
    }
    
    public function getAvg($arr) {
      $len = count($arr);
      
      if ($len > 0) {
        $sum = $this->getSum($arr);
        return $sum / $len;
      } else {
        return 0;
      }
    }
  }
?>

Poglejmo, kako bomo uporabljali te metode. Ustvarimo objekt našega razreda:

php<?php
  $arrHelper = new ArrHelper();
?>

Poiščimo z našim objektom vsoto števil različnih nizov:

php<?php
  $sum1 = $arrHelper->getSum([1, 2, 3]);
  var_dump($sum1);
  
  $sum2 = $arrHelper->getSum([3, 4, 5]);
  var_dump($sum2);
?>
Задание 1

Naredite razred Validator, ki bo izvajal preverjanje nizov na korektnost.

Задание 2

Naredite v vašem razredu metodo isEmail, ki preverja niz na to, da je korekten email.

Задание 3

Naredite v vašem razredu metodo isDomain, ki preverja niz na to, da je korektno ime domene.

Задание 4

Naredite v vašem razredu metodo isNumber, ki preverja niz na to, da vsebuje samo številke.