Klass kui meetodite kogum OOP-s PHP-s

Mõnikord kasutatakse klasse sarnase teemaga meetodite grupeerimiseks. Sellisel juhul luuakse reeglina ainult üks selle klassi objekt ja selle meetodeid kasutatakse korduvalt erinevates olukordades.

Vaatame näidet. Teeme klassi, mis manipuleerib numbrite massiividega:

php<?php
  class ArrHelper {
    
  }
?>

Iga selle klassi meetod saab parameetrina vastu võtta massiivi ja sooritab sellega etteantud toimingu. Olgu meil näiteks järgmised meetodid:

php<?php
  class ArrHelper {
    public function getSum($arr) {
      // elementide summa
    }
    
    public function getAvg($arr) {
      // aritmeetiline keskmine
    }
  }
?>

Kirjutame nende meetodite realiseeringu:

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

Vaatame, kuidas me neid meetodeid kasutama hakkame. Loome oma klassi objekti:

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

Leiame meie objekti abil erinevate massiivide numbrite summa:

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

Tehke klass Validator, mis kontrollib stringide korrektsust.

Задание 2

Tehke oma klassi meetod isEmail, mis kontrollib, kas string on korrektne email.

Задание 3

Tehke oma klassi meetod isDomain, mis kontrollib, kas string on korrektne domeeninimi.

Задание 4

Tehke oma klassi meetod isNumber, mis kontrollib, kas string sisaldab ainult numbreid.