PHPдеги ООПдо сеттерлер жана геттерлердин артыкчылыктары
Акыркы сабакта биз ар бир касиет үчүн геттер жана сеттер жасадык. Суроо туулушу мүмкүн, эмне үчүн мындай татаалдыктар керек, анткени негизинен ошол эле натыйжага жетүүгө болот, эгерде касиеттерди жашыруун эмес, жарыя кылып койсок.
Иштин сыры мында, геттерлер жана сеттерлер артыкчылыкка ээ: касиетке кайрылуудан мурун кээ бир текшерүүлөрдү аткарууга болот. Мисалы, биздин учурда атын жана фамилиясын жазууда жаңы маани бош сап эместигин текшере алабыз:
<?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;
}
}
?>
Келгиле, бул кандай иштейт, текшерип көрөлү. Адегенде класстын объектин түзөлү:
<?php
$user = new User();
?>
Эми туура маанини жазып көрөлү:
<?php
$user->setName('john');
?>
Эми туура эмес маанини жазып көрөлү:
<?php
$user->setName(''); // ката
?>
Employee класстын жашынын сеттеринде
жаштын 0дон 120га чейин болушу керек
деген текшерүүнү жасаңыз.
Employee класстын эмгек акысынын геттеринде
эмгек акысын окуганда анын маанисинин аягына
доллар белгиси кошулушун кылыңыз.