PHP-də OOP-də setter və getter-lərin üstünlükləri
Əvvəlki dərsdə biz hər bir property üçün getter və setter etdik. Sual yarana bilər ki, nə üçün belə mürəkkəbliklər lazımdır, axı faktiki olaraq eyni effekti əldə etmək olar, əgər property-ləri private deyil, public etsək.
Məsələ ondadır ki, getter və setter-lərin üstünlüyü var: property-ə müraciətdən əvvəl bəzi yoxlamalar yerinə yetirmək olar. Məsələn, bizim vəziyyətimizdə biz ad və soyadı yazarkən yeni dəyərin boş sətir olmadığını yoxlaya bilərik:
<?php
class User {
private $name;
private $surn;
public function setName($name) {
if (strlen($name) > 0) {
$this->name = $name;
} else {
echo 'name is incorrect';
}
}
public function setSurn($surn) {
if (strlen($surn) > 0) {
$this->surn = $surn;
} else {
echo 'surn is incorrect';
}
}
public function getName() {
return $this->name;
}
public function getSurn() {
return $this->surn;
}
}
?>
Gəlin bunun necə işlədiyini yoxlayaq. Əvvəlcə sinif obyekti yaradaq:
<?php
$user = new User();
?>
İndi düzgün dəyəri yazmağa çalışaq:
<?php
$user->setName('john');
?>
İndi isə düzgün olmayanı yazmağa çalışaq:
<?php
$user->setName(''); // xəta
?>
Employee sinfində yaş üçün setter-də
yaşın 0 ilə 120 arasında olması yoxlamasını edin.
Employee sinfində maaş üçün getter-də
elə edin ki, maaş oxunduqda onun dəyərinin
sonuna dollar işarəsi əlavə olunsun.