Դասը որպես մեթոդների հավաքածու OOP-ում PHP-ում

Երբեմն դասերն օգտագործվում են նմանատիպ թեմատիկայի մեթոդները խմբավորելու համար: Այս դեպքում, որպես կանոն, ստեղծվում է այդ դասի միայն մեկ օբյեկտ, և նրա մեթոդները բազմիցս օգտագործվում են տարբեր իրավիճակներում:

Դիտարկենք օրինակով: Ստեղծենք մի դաս, որն կաշխատի թվային զանգվածների հետ:

php<?php
  class ArrHelper {
    
  }
?>

Այս դասի յուրաքանչյուր մեթոդ պարամետրով կընդունի զանգված և կկատարի դրա վրա նշված գործողությունը: Ենթադրենք, օրինակ, ունենք հետևյալ մեթոդները:

php<?php
  class ArrHelper {
    public function getSum($arr) {
      // տարրերի գումարը
    }
    
    public function getAvg($arr) {
      // միջին թվաբանականը
    }
  }
?>

Գրենք այդ մեթոդների իրականացումը:

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

Տեսնենք, թե ինչպես կօգտագործենք այդ մեթոդները: Ստեղծենք մեր դասի օբյեկտը:

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

Օգտագործելով մեր օբյեկտը, գտնենք տարբեր զանգվածների թվերի գումարը:

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

Ստեղծեք Validator դասը, որը կկատարի տողերի ճիշտության ստուգում:

Задание 2

Ձեր դասում ավելացրեք isEmail մեթոդը, որը ստուգում է, արդյոք տողը ճիշտ email է:

Задание 3

Ձեր դասում ավելացրեք isDomain մեթոդը, որը ստուգում է, արդյոք տողը ճիշտ դոմենի անուն է:

Задание 4

Ձեր դասում ավելացրեք isNumber մեթոդը, որը ստուգում է, արդյոք տողը պարունակում է միայն թվեր: