개발자 Q&A

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

2025.06.09 06:26

ReflectionClass::getParentClass 함수 이해를 도와주세요.

목록
  • 프로토콜연구가 오래 전 2025.06.09 06:26
  • 65
    1
제가 ReflectionClass::getParentClass 함수를 사용하여 부모 클래스를 가져오려는데,

어떤 클래스의 부모 클래스를 가져올 때는 상속 관계가 있는지 확인하는 방법이 있을까요?

예를 들어, 클래스 A가 클래스 B를 상속하고, 클래스 B가 클래스 C를 상속하는 경우,

클래스 A의 부모 클래스는 클래스 C가 되는 것이죠.

이러한 상속 관계를 확인하는 방법이 궁금합니다.

또한, ReflectionClass::getParentClass 함수를 사용하여 부모 클래스를 가져올 때,

어떤 경우에 null이 반환되는지 알려주시면 감사하겠습니다.

    댓글목록

    profile_image
    나우호스팅  오래 전



    ReflectionClass::getParentClass 함수는 클래스의 부모 클래스를 반환합니다. 하지만, 이 함수는 단일 상속만 지원하므로, 클래스 A가 클래스 B를 상속하고, 클래스 B가 클래스 C를 상속하는 경우, 클래스 A의 부모 클래스는 클래스 B가 아닌 클래스 C가 됩니다.

    따라서, ReflectionClass::getParentClass 함수를 사용하여 부모 클래스를 가져올 때, 상속 관계를 확인하는 방법은 다음과 같습니다.

    1. 클래스의 상속 관계를 확인하여, 단일 상속 구조를 유지하는지 확인합니다.
    2. ReflectionClass::getParentClass 함수를 사용하여 부모 클래스를 가져옵니다.
    3. 가져온 부모 클래스가 실제 부모 클래스인지 확인합니다.

    ReflectionClass::getParentClass 함수는 null을 반환하는 경우는 다음과 같습니다.

    1. 클래스가 상속하지 않은 경우
    2. 클래스가 인터페이스를 상속한 경우
    3. 클래스가 추상 클래스를 상속한 경우

    예를 들어, 다음과 같은 코드가 있습니다.

    #hostingforum.kr
    php
    
    class A extends B {}
    
    class B extends C {}
    
    
    
    $a = new A();
    
    $reflection = new ReflectionClass($a);
    
    $parentClass = $reflection->getParentClass();
    
    
    
    if ($parentClass->getName() === 'C') {
    
        echo '클래스 A의 부모 클래스는 클래스 C입니다.';
    
    } else {
    
        echo '클래스 A의 부모 클래스는 클래스 C가 아닙니다.';
    
    }
    
    


    이 코드는 클래스 A의 부모 클래스가 클래스 C인지 확인합니다.

    2025-06-09 06:27

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

검색

게시물 검색