PHP да ООП да объект метода номини ўзгартувчидан олиш

Хоссалар номларини ўзгартувчида сақлашга ўхшаш усулда метод номларини ҳам сақлаш мумкин. Келинг мисолда кўрамиз. Бизда User класси ва унинг геттерлари мавжуд деб фараз қилайлик:

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
  $method = 'getName';
?>

Келинг, ўзгартувчидаги ном билан методни чақирайлик:

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

Қуйидаги класс берилган:

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

Қуйидаги массив берилган:

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

Employee класси объектини яратинг ва сўнгра унинг хоссаларига массив элементлари орқали мурожаат қилинг.