Třída jako sada metod v OOP v PHP
Někdy se třídy používají pro skupinování metod podobné tematiky. V tomto případě se zpravidla vytvoří pouze jeden objekt této třídy a jeho metody se používají mnohokrát v různých situacích.
Podívejme se na příklad. Vytvořme třídu, která bude manipulovat s poli čísel:
<?php
class ArrHelper {
}
?>
Každá metoda této třídy parametrem bude přijímat pole a provádět nad ním danou operaci. Nechť, například, máme následující metody:
<?php
class ArrHelper {
public function getSum($arr) {
// součet prvků
}
public function getAvg($arr) {
// aritmetický průměr
}
}
?>
Napišme implementaci těchto metod:
<?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;
}
}
}
?>
Podívejme se, jak budeme používat tyto metody. Vytvořme objekt naší třídy:
<?php
$arrHelper = new ArrHelper();
?>
Najděme pomocí našeho objektu součet čísel různých polí:
<?php
$sum1 = $arrHelper->getSum([1, 2, 3]);
var_dump($sum1);
$sum2 = $arrHelper->getSum([3, 4, 5]);
var_dump($sum2);
?>
Vytvořte třídu Validator,
která bude provádět kontrolu
řetězců na správnost.
Vytvořte ve své třídě metodu
isEmail, kontrolující řetězec na to,
že je to platný email.
Vytvořte ve své třídě metodu
isDomain, kontrolující řetězec na to,
že je to platné jméno domény.
Vytvořte ve své třídě metodu
isNumber, kontrolující řetězec na to,
že obsahuje pouze čísla.