Klasė kaip metodų rinkinys OOP PHP

Kartais klasės naudojamos panašių temų metodų grupuoti. Šiuo atveju paprastai sukuriamas tik vienas šios klasės objektas ir jo metodai naudojami daug kartų įvairiose situacijose.

Pažiūrėkime pavyzdžiu. Sukurkime klasę, kuri manipuliuos skaičių masyvais:

php<?php
  class ArrHelper {
    
  }
?>

Kiekvienas šios klasės metodas parametru gaus masyvą ir atliks su juo nurodytą operaciją. Tarkime, pavyzdžiui, kad mes turėsime šiuos metodus:

php<?php
  class ArrHelper {
    public function getSum($arr) {
      // elementų suma
    }
    
    public function getAvg($arr) {
      // aritmetinis vidurkis
    }
  }
?>

Parašykime šių metodų implementaciją:

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

Pažiūrėkime, kaip mes naudosimės šiais metodais. Sukurkime mūsų klasės objektą:

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

Raskime su mūsų objekto pagalba skaičių sumą įvairių masyvų:

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

Sukurkite klasę Validator, kuri atliks eilučių patikrą ar teisingos.

Задание 2

Padarykite savo klasėje metodą isEmail, tikrinantį eilutę ar ji yra teisingas email.

Задание 3

Padarykite savo klasėje metodą isDomain, tikrinantį eilutę ar ji yra teisingas domeno vardas.

Задание 4

Padarykite savo klasėje metodą isNumber, tikrinantį eilutę ar joje yra tik skaičiai.