
ReflectionProperty::setAccessible를 사용하여 private 변수에 접근하려고 할 때 발생하는 오류는, PHP 7.2.0 이상에서 private 변수는 ReflectionProperty::setAccessible를 사용하여 접근할 수 없습니다.
이 오류를 해결하는 방법은 두 가지가 있습니다.
1. private 변수를 protected 변수로 변경합니다. protected 변수는 ReflectionProperty::setAccessible를 사용하여 접근할 수 있습니다.
#hostingforum.kr
php
class MyClass {
protected $private변수;
}
$obj = new MyClass();
$reflectionProperty = new ReflectionProperty($obj, 'private변수');
$reflectionProperty->setAccessible(true);
echo $obj->private변수;
2. PHP 7.2.0 이하에서 private 변수를 접근할 수 있도록 하려면, PHP 7.2.0 이하에서 사용하는 ReflectionClass::getProperty() 메소드를 사용하여 private 변수를 접근할 수 있습니다.
#hostingforum.kr
php
class MyClass {
private $private변수;
}
$obj = new MyClass();
$reflectionProperty = ReflectionClass::getProperty($obj, 'private변수');
$reflectionProperty->setAccessible(true);
echo $obj->private변수;
이러한 방법을 사용하여 private 변수를 접근할 수 있습니다.
2025-03-30 21:16