Metodo pavadinimas iš kintamojo OOP PHP

Pagal analogiją su savybių pavadinimais kintamajame taip pat galima saugoti ir metodų pavadinimus. Pažiūrėkime pavyzdžiu. Tarkime, kad mums duotas štai tokios klasės User su savybių getteriais:

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

Sukurkime šios klasės objektą:

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

Tarkime, kad kintamajame saugomas metodo pavadinimas:

php<?php
  $method = 'getName';
?>

Iškvieskime metodą su pavadinimu iš kintamojo:

php<?php
  echo $user->$method(); // išves 'john'
?>
Задание 1

Duota ši klasė:

php<?php
  class Employee
  {
    private $name;
    private $salary;
    private $position;
    
    public function __construct($name, $salary, $position)
    {
      $this->name = $name;
      $this->salary = $salary;
      $this->position = $position;
    }
    
    public function getName()
    {
      return $this->name;
    }
    
    public function getSalary()
    {
      return $this->salary;
    }
    
    public function getPosition()
    {
      return $this->position;
    }
  }
?>

Duotas masyvas:

php<?php
  $methods = [
    'method1' => 'getName',
    'method2' => 'getSalary',
    'method3' => 'getPosition',
  ];
?>

Sukurkite Employee klasės objektą, o tada kreipkitės į jo savybes per masyvo elementus.