PHP OOP에서 존재하지 않는 속성 읽기
이전 강의에서 제시된 예시에서 우리는
비공개 속성에 대한 접근을 포착하기 위해
__get 매직 메서드를 사용했습니다. 사실 이 메서드는
존재하지 않는 속성에 대한 접근을 포착하는 데에도
유용할 수 있습니다.
실용적인 예를 살펴보겠습니다. 성과 이름이
공개 속성인 User 클래스가 있다고 가정해 보겠습니다:
<?php
class User
{
public $surn;
public $name;
}
?>
이제 이 클래스의 객체가 사용자의 성과 이름을 출력하는
full 속성도 가지고 있는 것처럼 동작하도록 만들어 보겠습니다.
이를 위해 매직 메서드 __get를 사용하겠습니다:
<?php
class User
{
public $surname;
public $name;
public $patronymic;
public function __get($property)
{
if ($property == 'full') {
return $this->surn . ' ' . $this->name;
}
}
}
?>
테스트해 봅시다:
<?php
$user = new User;
$user->surn = 'john';
$user->name = 'smit';
echo $user->full; // 'john smit'를 출력합니다
?>
공개 속성 year, month 및 day를 가진
Date 클래스를 만드세요.
매직을 사용하여 날짜에 해당하는 요일을 반환하는
weekDay 속성을 구현하세요.