Бартариҳои сеттерҳо ва геттерҳо дар ООП дар 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 дар геттери
маошият чун кинед, ки
вақти хондани маош ба охири арзиши он
аломати доллар илова карда шавад.