PHP-ի OOP-ում սետտերների և գետտերների առավելությունները
Նախորդ դասում մենք յուրաքանչյուր հատկության համար ստեղծեցինք գետտեր և սետտեր: Կարող է հարց առաջանալ՝ ինչու՞ են անհրաժեշտ այդպիսի բարդություններ, քանի որ փաստորեն նույն էֆեկտին կարելի է հասնել, եթե հատկությունները դարձնել հանրային (public), և ոչ թե մասնավոր (private):
Բանն այն է, որ գետտերներն ու սետտերներն ունեն առավելություն. հատկությանը դիմելուց առաջ կարելի է կատարել որոշ ստուգումներ: Օրինակ, մեր դեպքում, երբ գրում ենք անուն և ազգանուն, մենք կարող ենք ստուգել, որ նոր արժեքը դատարկ տող չէ.
<?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 դասի աշխատավարձի գետտերում
կատարեք այնպես, որ
աշխատավարձը կարդալիս դրա
արժեքի վերջում ավելացվի դոլարի նշան: