PHP OOP에서 배열 요소를 속성 이름으로 사용하기
이제 배열 요소에 저장된 이름으로
객체 속성에 접근하는 방법을 살펴보겠습니다.
다음과 같은 User 클래스가 있다고 가정해 봅시다:
<?php
class User
{
public $name;
public $surn;
public function __construct($name, $surn)
{
$this->name = $name;
$this->surn = $surn;
}
}
?>
이 클래스의 객체를 생성해 보겠습니다:
<?php
$user = new User('john', 'smit');
?>
속성 이름 배열이 주어졌다고 가정합니다:
<?php
$props = ['name', 'surn'];
?>
이제 배열의 첫 번째 요소에 저장된 속성 값을 출력해 보려고 합니다:
<?php
echo $user->$props[0]; // 이렇게는 작동하지 않습니다
?>
이런 복잡한 속성 이름이 작동하려면, 중괄호로 감싸야 합니다. 다음과 같이 하면 됩니다:
<?php
echo $user->{$props[0]}; // 'john'을 출력합니다
?>
다음 클래스가 주어졌습니다:
<?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
$arr = ['name', 'salary', 'position'];
?>
Employee 클래스의 객체를 생성한 후,
배열 요소를 통해 해당 속성에 접근해 보세요.