Klasse als Methodensammlung in OOP in PHP

Manchmal werden Klassen verwendet, um Methoden ähnlicher Thematik zu gruppieren. In diesem Fall wird in der Regel nur ein Objekt dieser Klasse erstellt und seine Methoden werden mehrfach in verschiedenen Situationen verwendet.

Schauen wir uns ein Beispiel an. Erstellen wir eine Klasse, die Zahlenarrays manipuliert:

php<?php
  class ArrHelper {
    
  }
?>

Jede Methode dieser Klasse wird als Parameter ein Array empfangen und eine vorgegebene Operation darauf ausführen. Nehmen wir an, wir haben beispielsweise folgende Methoden:

php<?php
  class ArrHelper {
    public function getSum($arr) {
      // Summe der Elemente
    }
    
    public function getAvg($arr) {
      // arithmetisches Mittel
    }
  }
?>

Schreiben wir die Implementierung dieser Methoden:

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

Schauen wir uns an, wie wir diese Methoden verwenden werden. Erstellen wir ein Objekt unserer Klasse:

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

Finden wir mit Hilfe unseres Objekts die Summe der Zahlen verschiedener Arrays:

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

Erstellen Sie eine Klasse Validator, die Zeichenketten auf Korrektheit prüfen wird.

Задание 2

Erstellen Sie in Ihrer Klasse die Methode isEmail, die eine Zeichenkette darauf prüft, ob sie eine korrekte Email ist.

Задание 3

Erstellen Sie in Ihrer Klasse die Methode isDomain, die eine Zeichenkette darauf prüft, ob sie ein korrekter Domainname ist.

Задание 4

Erstellen Sie in Ihrer Klasse die Methode isNumber, die eine Zeichenkette darauf prüft, dass sie nur Zahlen enthält.