Názov vlastnosti z poľa v OOP v PHP

Pozrime sa teraz, ako pristupovať k vlastnosti objektu podľa názvu z prvku poľa. Predpokladajme, že máme nasledujúcu triedu User:

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

Vytvorme objekt tejto triedy:

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

Predpokladajme, že je dané pole vlastností:

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

Skúsme teraz vypísať hodnotu vlastnosti, ktorá je uložená v nulovom prvku poľa:

php<?php
  echo $user->$props[0]; // takto to nebude fungovať
?>

Aby takýto zložitý názov vlastnosti fungoval, musí byť uzavretý do zložených zátvoriek, takto:

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

Daná je nasledujúca trieda:

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

Dané je pole:

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

Vytvorte objekt triedy Employee, a potom pristupte k jeho vlastnostiam prostredníctvom prvkov poľa.