Клас като набор от методи в ООП в 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, проверяващ низа дали той съдържа само числа.