Nom de propriété à partir d'un tableau en POO en PHP

Voyons maintenant comment accéder à une propriété d'un objet par son nom à partir d'un élément de tableau. Supposons que nous ayons la classe suivante User :

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

Créons un objet de cette classe :

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

Supposons qu'un tableau de propriétés soit donné :

php<?php
  $props = ['name', 'surn'];
?>

Essayons maintenant d'afficher la valeur de la propriété qui est stockée dans l'élément zéro du tableau :

php<?php
  echo $user->$props[0]; // ne fonctionnera pas
?>

Pour qu'un nom de propriété aussi complexe fonctionne, il doit être placé entre des accolades, comme ceci :

php<?php
  echo $user->{$props[0]}; // affichera 'john'
?>
Задание 1

La classe suivante est donnée :

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

Un tableau est donné :

php<?php
  $arr = ['name', 'salary', 'position'];
?>

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