
__get 메서드는 PHP의 Magic Method 중 하나로, 객체의 속성을 동적으로 접근할 수 있도록 해줍니다.
예를 들어, 객체가 'name'이라는 속성을 가지고 있다고 가정해 보겠습니다.
#hostingforum.kr
php
class SolrDocument {
private $name;
public function __get($property) {
if ($property == 'name') {
return $this->name;
} else {
throw new Exception("Undefined property: SolrDocument::$$property");
}
}
}
$solrDocument = new SolrDocument();
$solrDocument->name = 'John Doe';
echo $solrDocument->name; // John Doe
__get 메서드는 객체의 속성을 반환하거나, 속성이 존재하지 않을 때 예외를 발생시킵니다.
SolrDocument 클래스의 경우, __get 메서드는 SolrDocument 객체의 속성을 동적으로 접근할 수 있도록 해줍니다.
예를 들어, SolrDocument 객체에 'name'이라는 속성이 없을 때, __get 메서드는 예외를 발생시킵니다.
#hostingforum.kr
php
$solrDocument = new SolrDocument();
echo $solrDocument->name; // Undefined property: SolrDocument::$name
이러한 방식으로, __get 메서드는 객체의 속성을 동적으로 접근할 수 있도록 해줍니다.
이 메서드는 파라미터를 받고, 결과를 반환하는 방식은 다음과 같습니다.
- 파라미터: 속성 이름 ($property)
- 결과: 속성 값 또는 예외
이 메서드는 사용되는 상황은 다음과 같습니다.
- 객체의 속성을 동적으로 접근할 때 사용합니다.
- 객체의 속성이 존재하지 않을 때 예외를 발생시킵니다.
예시:
#hostingforum.kr
php
class SolrDocument {
private $name;
public function __get($property) {
if ($property == 'name') {
return $this->name;
} else {
throw new Exception("Undefined property: SolrDocument::$$property");
}
}
}
$solrDocument = new SolrDocument();
$solrDocument->name = 'John Doe';
echo $solrDocument->name; // John Doe
try {
echo $solrDocument->age; // Undefined property: SolrDocument::$age
} catch (Exception $e) {
echo $e->getMessage(); // Undefined property: SolrDocument::$age
}
2025-03-22 22:26