Třída jako sada metod v OOP v PHP

Někdy se třídy používají pro skupinování metod podobné tematiky. V tomto případě se zpravidla vytvoří pouze jeden objekt této třídy a jeho metody se používají mnohokrát v různých situacích.

Podívejme se na příklad. Vytvořme třídu, která bude manipulovat s poli čísel:

php<?php
  class ArrHelper {
    
  }
?>

Každá metoda této třídy parametrem bude přijímat pole a provádět nad ním danou operaci. Nechť, například, máme následující metody:

php<?php
  class ArrHelper {
    public function getSum($arr) {
      // součet prvků
    }
    
    public function getAvg($arr) {
      // aritmetický průměr
    }
  }
?>

Napišme implementaci těchto 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;
      }
    }
  }
?>

Podívejme se, jak budeme používat tyto metody. Vytvořme objekt naší třídy:

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

Najděme pomocí našeho objektu součet čísel různých polí:

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

Vytvořte třídu Validator, která bude provádět kontrolu řetězců na správnost.

Задание 2

Vytvořte ve své třídě metodu isEmail, kontrolující řetězec na to, že je to platný email.

Задание 3

Vytvořte ve své třídě metodu isDomain, kontrolující řetězec na to, že je to platné jméno domény.

Задание 4

Vytvořte ve své třídě metodu isNumber, kontrolující řetězec na to, že obsahuje pouze čísla.