Nome della proprietà da un array in OOP in PHP

Ora diamo un'occhiata a come accedere a una proprietà di un oggetto per nome da un elemento di un array. Supponiamo di avere la seguente classe User:

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

Creiamo un oggetto di questa classe:

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

Supponiamo di avere un array di proprietà:

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

Ora proviamo a visualizzare il valore della proprietà che è memorizzata nell'elemento zero dell'array:

php<?php
  echo $user->$props[0]; // così non funzionerà
?>

Affinché un nome di proprietà così complesso funzioni, deve essere racchiuso tra parentesi graffe, in questo modo:

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

Data la seguente classe:

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

Dato l'array:

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

Crea un oggetto della classe Employee, e poi accedi alle sue proprietà attraverso gli elementi dell'array.