Classe como conjunto de métodos em POO em PHP

Às vezes, as classes são usadas para agrupar métodos de temática semelhante. Nesse caso, geralmente apenas um objeto dessa classe é criado e seus métodos são usados muitas vezes em várias situações.

Vamos ver um exemplo. Vamos fazer uma classe que irá manipular arrays de números:

php<?php
  class ArrHelper {
    
  }
?>

Cada método desta classe receberá um array como parâmetro e executará uma operação definida sobre ele. Vamos supor, por exemplo, que tenhamos os seguintes métodos:

php<?php
  class ArrHelper {
    public function getSum($arr) {
      // soma dos elementos
    }
    
    public function getAvg($arr) {
      // média aritmética
    }
  }
?>

Vamos escrever a implementação desses métodos:

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

Vamos ver como vamos usar esses métodos. Vamos criar um objeto da nossa classe:

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

Vamos encontrar a soma de números de vários arrays usando nosso objeto:

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

Faça uma classe Validator, que realizará a verificação de strings quanto à correção.

Задание 2

Faça em sua classe o método isEmail, verificando se a string é um email correto.

Задание 3

Faça em sua classe o método isDomain, verificando se a string é um nome de domínio correto.

Задание 4

Faça em sua classe o método isNumber, verificando se a string contém apenas números.