Nom de méthode à partir d'une variable en POO en PHP

Par analogie avec les noms de propriétés dans une variable, les noms de méthodes peuvent également être stockés. Regardons un exemple. Supposons que nous ayons une classe User avec des accesseurs (getters) pour les propriétés :

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

Créons un objet de cette classe :

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

Supposons que le nom de la méthode soit stocké dans une variable :

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

Appelons la méthode dont le nom provient de la variable :

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

La classe suivante est donnée :

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

Le tableau suivant est donné :

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

Créez un objet de la classe Employee, puis accédez à ses propriétés via les éléments du tableau.