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