⊗ppOpBsGSA 14 of 107 menu

Предимства на сетъри и гетъри в ООП в 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 в гетъра за заплата направете така, че при четене на заплатата в края на стойността й да се добавя знак за долар.

Български
AfrikaansAzərbaycanবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Ние използваме бисквитки за работата на сайта, анализ и персонализация. Обработката на данни се извършва в съответствие с Политика за поверителност.
приемам всички настройки отхвърляне