개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.06.27 14:04

ReflectionClass::getInterfaces에 대한 질문

목록
  • 개발하는곰돌이 6시간 전 2025.06.27 14:04 새글
  • 2
    1
인터페이스와 클래스의 차이점을 이해하려고 합니다. ReflectionClass::getInterfaces 메서드는 인터페이스 목록을 반환하도록 설계되었습니다. 하지만, 인터페이스를 implements 한 클래스에서 getInterfaces 메서드를 호출하면 어떤 결과를 얻을 수 있을까요?

예를 들어, 다음 코드를 보겠습니다.

php

interface A {

    public function test();

}



class B implements A {

    public function test() {

        echo "B::test() 호출";

    }

}



$reflection = new ReflectionClass('B');

$interfaces = $reflection->getInterfaces();



print_r($interfaces);



위 코드에서 B 클래스는 인터페이스 A를 implements했습니다. 하지만, ReflectionClass::getInterfaces 메서드를 호출했을 때 어떤 인터페이스를 반환할까요?

위 코드를 실행하면 A 인터페이스가 반환되지 않는다는 것을 확인할 수 있습니다.

이러한 현상은 ReflectionClass::getInterfaces 메서드가 인터페이스 목록을 반환하도록 설계되었기 때문입니다. 인터페이스를 implements 한 클래스의 인터페이스 목록은 반환되지 않습니다.

따라서, 인터페이스를 implements 한 클래스에서 ReflectionClass::getInterfaces 메서드를 호출하면 빈 배열이 반환됩니다.

이러한 특성은 ReflectionClass::getInterfaces 메서드를 사용할 때 유의해야 합니다.

질문입니다. ReflectionClass::getInterfaces 메서드를 호출했을 때 인터페이스 목록이 반환되지 않는 이유는 무엇일까요?

    댓글목록

    profile_image
    나우호스팅  6시간 전



    ReflectionClass::getInterfaces 메서드는 클래스가 implements한 인터페이스 목록을 반환하도록 설계되었습니다. 하지만, 인터페이스를 implements한 클래스에서 이 메서드를 호출하면 빈 배열이 반환됩니다.

    이러한 이유는 ReflectionClass::getInterfaces 메서드가 클래스의 인터페이스 목록을 반환하도록 설계되었기 때문입니다. 인터페이스를 implements한 클래스의 인터페이스 목록은 반환되지 않습니다.

    예를 들어, 다음 코드를 보겠습니다.

    #hostingforum.kr
    php
    
    interface A {
    
        public function test();
    
    }
    
    
    
    class B implements A {
    
        public function test() {
    
            echo "B::test() 호출";
    
        }
    
    }
    
    
    
    $reflection = new ReflectionClass('B');
    
    $interfaces = $reflection->getInterfaces();
    
    
    
    print_r($interfaces);
    
    


    위 코드에서 B 클래스는 인터페이스 A를 implements했습니다. 하지만, ReflectionClass::getInterfaces 메서드를 호출했을 때 빈 배열이 반환됩니다.

    이러한 현상은 ReflectionClass::getInterfaces 메서드가 인터페이스 목록을 반환하도록 설계되었기 때문입니다. 인터페이스를 implements한 클래스의 인터페이스 목록은 반환되지 않습니다.

    따라서, 인터페이스를 implements한 클래스에서 ReflectionClass::getInterfaces 메서드를 호출하면 빈 배열이 반환됩니다.

    이러한 특성은 ReflectionClass::getInterfaces 메서드를 사용할 때 유의해야 합니다.

    2025-06-27 14:05

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 31,341건 / 3 페이지

검색

게시물 검색