PHP-ի OOP-ում սետտերների և գետտերների առավելությունները

Նախորդ դասում մենք յուրաքանչյուր հատկության համար ստեղծեցինք գետտեր և սետտեր: Կարող է հարց առաջանալ՝ ինչու՞ են անհրաժեշտ այդպիսի բարդություններ, քանի որ փաստորեն նույն էֆեկտին կարելի է հասնել, եթե հատկությունները դարձնել հանրային (public), և ոչ թե մասնավոր (private):

Բանն այն է, որ գետտերներն ու սետտերներն ունեն առավելություն. հատկությանը դիմելուց առաջ կարելի է կատարել որոշ ստուգումներ: Օրինակ, մեր դեպքում, երբ գրում ենք անուն և ազգանուն, մենք կարող ենք ստուգել, որ նոր արժեքը դատարկ տող չէ.

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<?php
  $user = new User();
?>

Հիմա փորձենք գրել ճիշտ արժեք.

php<?php
  $user->setName('john');
?>

Հիմա փորձենք գրել սխալ արժեք.

php<?php
  $user->setName(''); // սխալ
?>
Задание 1

Employee դասի տարիքի սետտերում կատարեք ստուգում, որ տարիքը պետք է լինի 0-ից մինչև 120:

Задание 2

Employee դասի աշխատավարձի գետտերում կատարեք այնպես, որ աշխատավարձը կարդալիս դրա արժեքի վերջում ավելացվի դոլարի նշան: