Клас како збир на методи во ООП во PHP

Понекогаш класите се користат за групирање на методи со слична тематика. Во овој случај обично се создава само еден објект од оваа класа и неговите методи се користат многу пати во различни ситуации.

Да погледнеме на пример. Да направиме класа, која ќе манипулира со низи од броеви:

php<?php
  class ArrHelper {
    
  }
?>

Секој метод од оваа класа како параметар ќе прифаќа низа и ќе извршува врз неја зададена операција. Нека, на пример, имаме следниве методи:

php<?php
  class ArrHelper {
    public function getSum($arr) {
      // збир на елементите
    }
    
    public function getAvg($arr) {
      // аритметичка средина
    }
  }
?>

Да ја напишеме имплементацијата на овие методи:

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

Да видиме како ќе ги користиме овие методи. Да создадеме објект од нашата класа:

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

Да го најдеме со помош на нашиот објект збирот на броеви на различни низи:

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

Направете класа Validator, која ќе ја извршува проверката на стрингови за коректност.

Задание 2

Направете во вашата класа метод isEmail, кој ќе проверува дали стрингот е коректен email.

Задание 3

Направете во вашата класа метод isDomain, кој ќе проверува дали стрингот е коректно име на домен.

Задание 4

Направете во вашата класа метод isNumber, кој ќе проверува дали стрингот содржи само броеви.