অন্য অবজেক্টের প্রোপার্টি নাম ব্যবহার করে PHP-র OOP-তে অ্যাক্সেস

প্রোপার্টির নাম এমনকি অন্য অবজেক্টের একটি প্রোপার্টিও হতে পারে। ধরুন আমাদের কাছে নিম্নলিখিত User ক্লাসটি আছে:

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

এই ক্লাসের একটি অবজেক্ট তৈরি করা যাক:

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

ধরুন আমাদের কাছে Prop নামেও একটি ক্লাস আছে, যেটির value প্রোপার্টিটি প্রোপার্টির নাম সংরক্ষণ করবে:

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

এই ক্লাসের একটি অবজেক্ট তৈরি করা যাক:

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

এখন এই অবজেক্টটি ব্যবহার করে ব্যবহারকারীর নাম আউটপুট করা যাক:

php<?php
  echo $user->{$prop->value}; // আউটপুট দেবে 'john'
?>
Задание 1

নিম্নলিখিত ক্লাসটি দেওয়া আছে:

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

এমন একটি ক্লাসও দেওয়া আছে:

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

Employee অবজেক্টের প্রোপার্টিগুলো Data অবজেক্টের মাধ্যমে আউটপুট করুন।