
ReflectionMethod::setAccessible() 메소드는 ReflectionProperty에만 사용할 수 있습니다. ReflectionMethod는 private 메소드에 접근할 수 없기 때문입니다.
private 메소드에 접근하려면, ReflectionProperty를 사용하여 private 변수에 접근한 후, 그 변수를 사용하여 private 메소드를 호출해야 합니다.
예를 들어, MyClass에 private 변수 $privateVariable와 private 메소드 privateMethod가 있다고 가정해 보겠습니다.
#hostingforum.kr
php
class MyClass {
private $privateVariable;
private function privateMethod() {}
}
private 메소드 privateMethod에 접근하려면, ReflectionProperty를 사용하여 private 변수 $privateVariable에 접근한 후, 그 변수를 사용하여 private 메소드를 호출해야 합니다.
#hostingforum.kr
php
$reflectionProperty = new ReflectionProperty('MyClass', 'privateVariable');
$reflectionProperty->setAccessible(true);
$reflectionProperty->setValue($obj, '값');
$reflectionMethod = new ReflectionMethod('MyClass', 'privateMethod');
$reflectionMethod->setAccessible(true);
$obj->privateMethod();
위 코드를 실행하면, private 메소드 privateMethod에 접근할 수 있습니다.
2025-03-16 21:31