НОВИНКА!
Занимательная математика от Трепачёва. Присоединяйтесь к нам!
⊗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
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить