Naam van eigenschap van een ander object in OOP in PHP

De naam van de eigenschap kan zelfs een eigenschap zijn van een ander object. 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 we ook de klasse Prop hebben, die in de eigenschap value de naam van de eigenschap zal bevatten:

php<?php
  class Prop
  {
    public $value;
    
    public function __construct($value)
    {
      $this->value = $value;
    }
  }
?>

Laten we een object van deze klasse aanmaken:

php<?php
  $prop = new Prop('name'); 
?>

Laten we nu met behulp van dit object de naam van de gebruiker weergeven:

php<?php
  echo $user->{$prop->value}; // geeft 'john' weer
?>
Задание 1

Gegeven de volgende klasse:

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

Ook gegeven is de volgende klasse:

php<?php
  class Data
  {
    public $prop1 = 'name';
    public $prop2 = 'salary';
    public $prop3 = 'position';
  }
?>

Geef de eigenschappen van het object Employee weer via het object Data.