Nombre del método desde una variable en POO en PHP

Por analogía con los nombres de propiedades en una variable, también se pueden almacenar los nombres de los métodos. Veamos un ejemplo. Supongamos que tenemos la siguiente clase User con los getters de las propiedades:

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

Creemos un objeto de esta clase:

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

Supongamos que en una variable se almacena el nombre de un método:

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

Llamemos al método con el nombre desde la variable:

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

Se da la siguiente clase:

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

Se da el siguiente array:

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

Cree un objeto de la clase Employee, y luego acceda a sus propiedades a través de los elementos del array.