PHP-de OOP-da Metodlar ýygyndysy hökmünde klas

Käte klaslar meňzeş temada metodlary gruplamak üçin ulanylýar. Bu ýagdaýda, adatça diňe bir şu klasyň obýekti döredilýär we onuň metodlary çaklamaly ýagdaýlarda köp gezek ulanylýar.

Mysal üçin serediň. Sanlar massiwlerini dolandyryjy bir klas edeliň:

php<?php
  class ArrHelper {
    
  }
?>

Bu klasyň her bir metodu, parametr hökmünde massiw kabul eder we onuň üstünde berlen amaly ýerine ýetirer. Geliň, mysal üçin, bizde aşakdaky metodlar bolsun:

php<?php
  class ArrHelper {
    public function getSum($arr) {
      // elementleriň jemi
    }
    
    public function getAvg($arr) {
      // ortaça arifmetiki
    }
  }
?>

Bu metodlaryň amala aşyrylyşyny ýazalyň:

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

Geliň, bu metodlary nädip ulanjakdygymyza serediň. Klasymyzyň bir obýektini dörediň:

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

Obýektimiziň ýardamy bilen dürli massiwleriň sanlarynyň jemini tapalyň:

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

Validator klasyny ediň, şol bir hatlaryň dogrulygyny barlar.

Задание 2

Klasynyzyzda isEmail metoduny ediň, hatyň dogry emaildigini barlar.

Задание 3

Klasynyzyzda isDomain metoduny ediň, hatyň dogry domen adydugygyny barlar.

Задание 4

Klasynyzyzda isNumber metoduny ediň, hatyň diňe sanlardan ybaratdugygyny barlar.