PHP-de OOP-da setter we getterleriň artlary
Öňki sapakda biz her bir häsiýet üçin getter we setter ýasadyk. Bu ýagdaýda, eger häsiýetleri gizlin däl-de, umumy etsek, şol bir netijäni gazanyp bileris, diýen sorag ýüze çykyp bilýär.
Mesele şonda, getter we setterleriň bir arty bar: häsiýete ýüz tutmazyň öň, käbir barlaglary ýerine ýetirip bolýar. Mysal üçin, bizim ýagdaýymyzda at we familiýany ýazdyryşda, täze bahanyň boş setir däldigini barlap bolýar:
<?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;
}
}
?>
Geliň, munyň nädip işleýändigini barlaýaly. Ilki bilen, klasyň obýektini döredeliň:
<?php
$user = new User();
?>
Indi, dogry bahany ýazmaga synanyşalyň:
<?php
$user->setName('john');
?>
Indi bolsa, nädogry bahany ýazmaga synanyşalyň:
<?php
$user->setName(''); // ýalňyşlyk
?>
Employee klasynda, ýaş üçin setterde,
ýaşyň 0 bilen 120 aralygynda
bolmalydygyny barlaň.
Employee klasynda, aýlyk hak üçin getterde,
aýlyk haky okalanda, onuň bahasynyň soňuna
dollar nyşany goşulýan etmeli.