
ReflectionProperty::isReadOnly는 속성이 읽기 전용인지 여부를 나타내는 속성입니다. 읽기 전용 속성은 프로그램에서 직접 수정할 수 없는 속성을 의미합니다.
속성이 읽기 전용인지 여부는 속성이 private 또는 protected 속성이거나, 속성이 final 속성인 경우에 true를 반환합니다.
예를 들어, 다음 코드를 살펴보겠습니다.
#hostingforum.kr
php
class MyClass {
private $name;
public function __construct($name) {
$this->name = $name;
}
}
$reflection = new ReflectionClass('MyClass');
$property = $reflection->getProperty('name');
echo $property->isReadOnly ? 'true' : 'false';
위 코드에서 ReflectionProperty::isReadOnly는 true를 반환하는 이유는 속성이 private 속성이기 때문입니다.
이 속성이 true인 경우, 프로그램에서 직접 속성을 수정할 수 없습니다. 속성을 수정하려면 getter나 setter 메서드를 사용해야 합니다.
예를 들어, 다음 코드를 살펴보겠습니다.
#hostingforum.kr
php
class MyClass {
private $name;
public function __construct($name) {
$this->name = $name;
}
public function getName() {
return $this->name;
}
public function setName($name) {
$this->name = $name;
}
}
$reflection = new ReflectionClass('MyClass');
$property = $reflection->getProperty('name');
echo $property->isReadOnly ? 'true' : 'false';
$obj = new MyClass('John');
$obj->setName('Jane');
echo $obj->getName();
위 코드에서 속성이 true인 경우, 프로그램에서 직접 속성을 수정할 수 없습니다. 속성을 수정하려면 getName() 메서드를 사용해야 합니다.
이러한 방식으로 속성이 읽기 전용인지 여부를 확인하고, 속성을 수정할 수 있는지 여부를 결정할 수 있습니다.
2025-04-08 10:55