Gettery vlastností v OOP v PHP

Předpokládejme, že máme následující třídu s privátními vlastnostmi:

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

Jak vidíte, tyto vlastnosti jsou nastaveny jednou při vytváření objektu. Nyní však tyto vlastnosti nelze přečíst, protože jsou privátní a neexistují odpovídající metody pro to.

Pojďme pro naše vlastnosti vytvořit speciální metody umožňující přečíst tyto vlastnosti. Takové metody (nazývané gettery) obvykle začínají slovem get, za kterým následuje název čtené vlastnosti.

Pojďme vytvořit gettery našich vlastností:

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;
    }
  }
?>

Pojďme ověřit jejich funkčnost. Vytvořme objekt, parametrem předáme data uživatele:

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

Přečtěme tato data pomocí getterů:

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

Ve třídě Employee vytvořte tři privátní vlastnosti: jméno, plat a věk.

Задание 2

Předejte parametrem konstruktoru hodnoty těchto vlastností.

Задание 3

Vytvořte gettery, které vypisují hodnoty každé z našich vlastností.