Η Κλάση ως Σύνολο Μεθόδων στην αντικειμενοστρεφή προγραμματισμό στην 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, που ελέγχει αν μια συμβολοσειρά είναι ένα έγκυρο όνομα domain.

Задание 4

Φτιάξτε στην κλάση σας μια μέθοδο isNumber, που ελέγχει αν μια συμβολοσειρά περιέχει μόνο αριθμούς.