
ReflectionExtension::getFunctions 메소드는 클래스의 모든 메소드를 반환합니다. 따라서, 여러 메소드가 포함된 클래스에서 특정 메소드를 가져올 때는 getFunctions 메소드를 사용할 때 특정 메소드를 필터링하는 방법을 사용해야 합니다.
예를 들어, 특정 메소드를 가져올 때는 다음과 같이 필터링을 사용할 수 있습니다.
#hostingforum.kr
php
$reflectionClass = new ReflectionClass('클래스명');
$functions = $reflectionClass->getMethods(ReflectionMethod::IS_PUBLIC);
foreach ($functions as $function) {
if ($function->getName() == '특정메소드명') {
// 특정 메소드를 처리합니다.
}
}
getFunctions 메소드의 반환값은 ReflectionMethod 객체의 배열입니다. 반환된 값은 ReflectionMethod 객체의 배열이기 때문에, 반복문을 사용하여 각 메소드를 처리해야 합니다.
반환된 값에 대해 처리하는 방법은 다음과 같습니다.
- ReflectionMethod 객체의 getName() 메소드를 사용하여 메소드 이름을 가져올 수 있습니다.
- ReflectionMethod 객체의 getParameters() 메소드를 사용하여 메소드의 파라미터를 가져올 수 있습니다.
- ReflectionMethod 객체의 isPublic() 메소드를 사용하여 메소드가 public인지 여부를 확인할 수 있습니다.
예를 들어, 다음과 같이 처리할 수 있습니다.
#hostingforum.kr
php
$reflectionClass = new ReflectionClass('클래스명');
$functions = $reflectionClass->getMethods(ReflectionMethod::IS_PUBLIC);
foreach ($functions as $function) {
if ($function->getName() == '특정메소드명') {
$parameters = $function->getParameters();
foreach ($parameters as $parameter) {
echo $parameter->getName() . ' ';
}
echo "n";
}
}
2025-06-16 10:28