
ReflectionClass::hasProperty 메소드는 객체의 속성이 존재하는지 여부를 반환합니다. 하지만, 이 메소드는 객체의 속성이 읽기 전용일 경우에도 true를 반환합니다.
예를 들어, 다음 코드를 살펴보겠습니다.
#hostingforum.kr
php
class Test {
private $readOnlyProperty;
public function __construct() {
$this->readOnlyProperty = '값';
}
}
$reflectionClass = new ReflectionClass('Test');
$hasProperty = $reflectionClass->hasProperty('readOnlyProperty');
var_dump($hasProperty);
이 코드의 경우, ReflectionClass::hasProperty 메소드는 true를 반환합니다. 이유는 PHP에서 읽기 전용 속성은 존재하지만, 접근할 수 없기 때문입니다. ReflectionClass::hasProperty 메소드는 객체의 속성이 존재하는지 여부를 반환하기 때문에 읽기 전용 속성도 존재하는 것으로 간주합니다.
따라서, 읽기 전용 속성이 존재하는 경우 ReflectionClass::hasProperty 메소드는 true를 반환합니다. 하지만, 읽기 전용 속성을 접근하려고 하면 Fatal error가 발생합니다.
2025-08-09 07:06