
ReflectionMethod::isPrivate() 메서드는 클래스 내부의 메서드가 protected인지 public인지 확인하는 메서드입니다.
이 메서드는 private 메서드를 확인하는 것이 아니라, protected 메서드인지 public 메서드인지 확인하는 메서드입니다.
이 메서드는 private 메서드는 ReflectionClass::getMethods() 메서드를 통해 접근할 수 없기 때문에 private 메서드를 확인할 수 없습니다.
따라서 ReflectionMethod::isPrivate() 메서드는 private 메서드를 확인할 수 없으며, protected 메서드인지 public 메서드인지 확인하는 메서드입니다.
예를 들어, 다음 코드를 살펴보겠습니다.
#hostingforum.kr
php
class MyClass {
private function myPrivateMethod() {
echo "Private method called.";
}
protected function myProtectedMethod() {
echo "Protected method called.";
}
public function myPublicMethod() {
echo "Public method called.";
}
}
$reflectionClass = new ReflectionClass('MyClass');
$reflectionMethod = $reflectionClass->getMethod('myProtectedMethod');
var_dump($reflectionMethod->isPrivate()); // bool(false)
var_dump($reflectionMethod->isPublic()); // bool(true)
이 코드에서 $reflectionMethod->isPrivate() 메서드는 protected 메서드인 myProtectedMethod()가 private인지 확인하는 것이 아니라, protected 메서드인지 public 메서드인지 확인하는 메서드입니다. 따라서 결과는 bool(false)가 됩니다. 반면, $reflectionMethod->isPublic() 메서드는 protected 메서드인 myProtectedMethod()가 public인지 확인하는 메서드입니다. 따라서 결과는 bool(true)가 됩니다.
2025-04-05 22:02