Geteri svojstava u OOP-u u PHP-u

Neka imamo sledeću klasu sa privatnim svojstvima:

php<?php
  class User {
    private $name;
    private $surn;
    
    public function __construct($name, $surn) {
      $this->name = $name;
      $this->surn = $surn;
    }
  }
?>

Kao što vidite, ova svojstva se postavljaju jednom prilikom kreiranja objekta. Sada, međutim, ova svojstva je nemoguće pročitati, pošto su privatna i ne postoje odgovarajući metodi za to.

Hajde da napravimo za naša svojstva specijalne metode koji omogućavaju čitanje ovih svojstava. Takve metode (koje se nazivaju geteri) obično počinju sa rečju get, a zatim sledi naziv svojstva koje se čita.

Hajde da napravimo getere za naša svojstva:

php<?php
  class User {
    private $name;
    private $surn;
    
    public function __construct($name, $surn) {
      $this->name = $name;
      $this->surn = $surn;
    }
    
    public function getName() {
      return $this->name;
    }
    
    public function getSurn() {
      return $this->surn;
    }
  }
?>

Hajde da proverimo njihov rad. Kreirajmo objekat, prosledivši parametrom podatke korisnika:

php<?php
  $user = new User('john', 'smit');
?>

Pročitajmo ove podatke, koristeći getere:

php<?php
  var_dump($user->getName());
  var_dump($user->getSurn());
?>
Задание 1

U klasi Employee napravite tri privatna svojstva: ime, platu i godine.

Задание 2

Prosledite konstruktoru parametrom vrednosti ovih svojstava.

Задание 3

Napravite getere koji ispisuju vrednosti svakog od naših svojstava.