Faida za Setters na Getters katika OOP kwenye PHP
Katika somo lililopita tulifanya kila sifa iwe na getter na setter. Swali linaweza kutokea, kwa nini zinahitajika ugumu kama huo, kwani kwa kweli athira ile ile inaweza kufikiwa ikiwa sifa zitafanywa kuwa za umma, na sio za kibinafsi.
Jambo ni kwamba getters na setters zina faida: kabla ya kurejelea sifa inawezekana kufanya baadhi ya ukaguzi. Kwa mfano, katika kesi yetu tunapoandika jina na ukoo tunaweza kukagua, kuwa thamani mpya sio kuwa tupu:
<?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;
}
}
?>
Wacha tujaribu, jinsi hii inavyofanya kazi. Kwanza tuunde kitu cha darasa:
<?php
$user = new User();
?>
Sasa tujaribu kuandika thamani sahihi:
<?php
$user->setName('john');
?>
Sasa tujaribu kuandika isiyo sahihi:
<?php
$user->setName(''); // hitilafu
?>
Katika darasa Employee kwenye setter
ya umri fanya ukaguzi wa kwamba,
umri lazima uwe
kati ya 0 hadi 120.
Katika darasa Employee kwenye getter
ya mshahara fanya hivi, ili
wakati wa kusoma mshahara mwisho wa
thamani yake iongezwe alama ya dola.