Luokka menetelmien kokoelmana OOP:ssa PHP:ssä

Joskus luokkia käytetään samantemaattisten menetelmien ryhmittelyyn. Tällöin yhteydessä luodaan yleensä vain yksi kyseisen luokan olio, ja sen menetelmiä käytetään useita kertoja erilaisissa tilanteissa.

Katsotaanpa esimerkkiä. Tehdään luokka, joka manipuloi numerotaulukoita:

php<?php
  class ArrHelper {
    
  }
?>

Jokainen tämän luokan menetelmä saa parametrinaan taulukon ja suorittaa sen yli määritetyn operaation. Olkoonpa esimerkiksi seuraavat menetelmät:

php<?php
  class ArrHelper {
    public function getSum($arr) {
      // alkioiden summa
    }
    
    public function getAvg($arr) {
      // aritmeettinen keskiarvo
    }
  }
?>

Kirjoitetaan näiden menetelmien toteutus:

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

Katsotaanpa, miten käytämme näitä menetelmiä. Luodaan luokastamme olio:

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

Etsitään olioimme avulla eri taulukoiden numeroiden summa:

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

Tee luokka Validator, joka suorittaa merkkijonon oikeellisuustarkistuksen.

Задание 2

Tee luokkaasi metodi isEmail, joka tarkistaa onko merkkijono kelvollinen sähköpostiosoite.

Задание 3

Tee luokkaasi metodi isDomain, joka tarkistaa onko merkkijono kelvollinen verkkotunnuksen nimi.

Задание 4

Tee luokkaasi metodi isNumber, joka tarkistaa sisältääkö merkkijono vain numeroita.