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');
?>

속성 이름 배열이 주어졌다고 가정합니다:

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

이제 배열의 첫 번째 요소에 저장된 속성 값을 출력해 보려고 합니다:

php<?php
  echo $user->$props[0]; // 이렇게는 작동하지 않습니다
?>

이런 복잡한 속성 이름이 작동하려면, 중괄호로 감싸야 합니다. 다음과 같이 하면 됩니다:

php<?php
  echo $user->{$props[0]}; // '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
  $arr = ['name', 'salary', 'position'];
?>

Employee 클래스의 객체를 생성한 후, 배열 요소를 통해 해당 속성에 접근해 보세요.