Синф ҳамчун маҷмӯи методҳо дар ООП дар PHP
Гоҳе синфҳо барои гурӯҳбандии методҳои мавзӯъҳои монанд истифода мешаванд. Дар ин ҳолат одатан танҳо як объекти ин синф сохта мешавад ва методҳои он бисёр маротиба дар ҳолатҳои гуногун истифода мешаванд.
Биёед дар мисол назарем. Синферо месозем, ки ба рақамҳои массивҳо амал мекунад:
<?php
class ArrHelper {
}
?>
Ҳар як методе ин синф параметр массивро қабул мекунад ва амали муайяншударо рӯи он иҷро мекунад. Бигзор, барои намуна, мо методҳои зеринро дошта бошем:
<?php
class ArrHelper {
public function getSum($arr) {
// ҷамъи унсурҳо
}
public function getAvg($arr) {
// миёнаи арифметикӣ
}
}
?>
Реализатсияи ин методҳоро нависем:
<?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
$arrHelper = new ArrHelper();
?>
Ба ёрии объекти худ ҷамъи рақамҳои массивҳои гуногунро пайдо мекунем:
<?php
$sum1 = $arrHelper->getSum([1, 2, 3]);
var_dump($sum1);
$sum2 = $arrHelper->getSum([3, 4, 5]);
var_dump($sum2);
?>
Синфи Validator созед, ки санҷидани дурустии сатрҳоро иҷро мекунад.
Дар синфи худ метод isEmail созед, ки сатрро барои он ки email-и дуруст аст, месанҷад.
Дар синфи худ метод isDomain созед, ки сатрро барои он ки номи домени дуруст аст, месанҷад.
Дар синфи худ метод isNumber созед, ки сатрро барои он ки танҳо рақамҳо дорад, месанҷад.