Getters för egenskaper i OOP i PHP

Låt oss säga att vi har följande klass med privata egenskaper:

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

Som du ser sätts dessa egenskaper en gång när objektet skapas. Just nu är det dock omöjligt att läsa dessa egenskaper, eftersom de är privata och det inte finns motsvarande metoder för detta.

Låt oss skapa speciella metoder för våra egenskaper som tillåter läsning av dessa egenskaper. Sådana metoder (som kallas getters) brukar börja med ordet get, följt av namnet på egenskapen som läsas.

Låt oss skapa getters för våra egenskaper:

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

Låt oss testa deras funktionalitet. Skapa ett objekt, och skicka med användardata som parameter:

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

Låt oss läsa denna data genom att använda getters:

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

I klassen Employee, skapa tre privata egenskaper: namn, lön och ålder.

Задание 2

Skicka värdena för dessa egenskaper via konstruktorn som parameter.

Задание 3

Skapa getters som returnerar värdena för var och en av våra egenskaper.