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

Indi, dogry bahany ýazmaga synanyşalyň:

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

Indi bolsa, nädogry bahany ýazmaga synanyşalyň:

php<?php
  $user->setName(''); // ýalňyşlyk
?>
Задание 1

Employee klasynda, ýaş üçin setterde, ýaşyň 0 bilen 120 aralygynda bolmalydygyny barlaň.

Задание 2

Employee klasynda, aýlyk hak üçin getterde, aýlyk haky okalanda, onuň bahasynyň soňuna dollar nyşany goşulýan etmeli.