Геттеры свойств в ООП в PHP

Пусть у нас есть следующий класс с приватными свойствами:

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

Как вы видите, эти свойства задаются один раз при создании объекта. Сейчас, однако, эти свойства невозможно прочитать, ведь они приватные и нет соответствующих методов для этого.

Давайте сделаем для наших свойств специальные методы, позволяющие прочитать эти свойства. Такие методы (их называют геттеры) обычно начинаются со слова get, а затем следует название читаемого свойства.

Давайте сделаем геттеры наших свойств:

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

Давайте проверим их работу. Создадим объект, параметром передав данные юзера:

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

Прочитаем эти данные, воспользовавшись геттерами:

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

В классе Employee сделайте три приватных свойства: имя, зарплату и возраст.

Задание 2

Передайте параметром конструктора значения этих свойств.

Задание 3

Сделайте геттеры, выводящие значения каждого из наших свойств.