Eigenschapsnaam uit array in OOP in PHP

Laten we nu bekijken hoe we kunnen verwijzen naar een eigenschap van een object op basis van de naam uit een array-element. Stel dat we de volgende klasse User hebben:

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

Laten we een object van deze klasse aanmaken:

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

Stel dat er een array met eigenschappen is gegeven:

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

Laten we proberen de waarde van de eigenschap uit te voeren, die is opgeslagen in het nulde element van de array:

php<?php
  echo $user->$props[0]; // zo werkt het niet
?>

Om een dergelijke complexe eigenschapsnaam te laten werken, moet deze tussen accolades worden gezet, zoals hier:

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

De volgende klasse is gegeven:

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

De volgende array is gegeven:

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

Maak een object van de klasse Employee aan, en verwijs vervolgens naar zijn eigenschappen via de elementen van de array.