
ReflectionClass::getInterfaceNames() 메소드는 클래스가 implements한 인터페이스 이름을 반환합니다.
이 메소드는 인터페이스를 상속받은 클래스의 인터페이스 이름을 가져올 수 있습니다. 예를 들어, 다음 코드를 살펴보겠습니다.
#hostingforum.kr
php
interface A {
}
interface B extends A {
}
class C implements B {
}
$reflectionClass = new ReflectionClass('C');
$interfaceNames = $reflectionClass->getInterfaceNames();
print_r($interfaceNames); // Array ( [0] => B [1] => A )
getInterfaceNames() 메소드는 오버라이드 될 수 없습니다. 이 메소드는 ReflectionClass의 메소드이기 때문에 오버라이드 할 수 없습니다.
하지만, 클래스가 implements한 인터페이스 이름을 가져올 수 있는 다른 방법은 다음과 같습니다.
#hostingforum.kr
php
class D implements A, B {
}
$reflectionClass = new ReflectionClass('D');
$interfaces = $reflectionClass->getInterfaceNames();
foreach ($interfaces as $interface) {
$reflectionInterface = new ReflectionClass($interface);
$interfaceNames = $reflectionInterface->getInterfaceNames();
print_r($interfaceNames);
}
이 코드는 클래스가 implements한 인터페이스 이름을 가져와서, 그 인터페이스 이름을 다시 가져오는 과정을 반복합니다.
2025-08-11 18:22