개발자 Q&A

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

2025.08.10 01:51

ReflectionProperty::getType에 대한 질문

목록
  • 앱스토어장인 20시간 전 2025.08.10 01:51 새글
  • 3
    1
제가 ReflectionProperty 클래스를 사용하여 프로퍼티의 타입을 가져오려고 하는데, getType 메서드가 반드시 프로퍼티가 선언된 클래스의 인스턴스에 대해 호출되어야 한다는 것을 알게되었습니다. 하지만, getType 메서드를 static 메서드로 호출할 수 없다는 것을 알게되었습니다. 이에 대해 어떻게 생각하시는지 궁금합니다.

예를 들어서, 다음 코드는 어떤 문제가 있는지 알려주세요.
php

class Person {

    public $name;

}



$reflection = new ReflectionClass('Person');

$property = $reflection->getProperty('name');

echo $property->getType(); // Error: getType() requires the property to be declared on an instance of class Person


이 문제를 해결하려면 어떻게 해야 하나요?

    댓글목록

    profile_image
    나우호스팅  20시간 전



    이러한 문제는 ReflectionProperty 클래스의 getType 메서드가 프로퍼티가 선언된 클래스의 인스턴스에 대해 호출되어야 한다는 점에서 발생합니다.

    이 문제를 해결하려면, 프로퍼티가 선언된 클래스의 인스턴스를 생성하고, ReflectionClass 인스턴스를 통해 프로퍼티를 가져와야 합니다.

    예를 들어, 다음 코드는 이러한 문제를 해결한 예시입니다.

    #hostingforum.kr
    php
    
    class Person {
    
        public $name;
    
    }
    
    
    
    $person = new Person();
    
    $reflection = new ReflectionClass('Person');
    
    $property = $reflection->getProperty('name', $person);
    
    echo $property->getType();
    
    


    위 코드에서, $person 인스턴스를 생성하고, ReflectionClass 인스턴스를 통해 프로퍼티를 가져오기 위해 $person 인스턴스를 두 번째 인수로 전달합니다.

    이러한 방법으로, getType 메서드를 호출할 수 있습니다.

    2025-08-10 01:52

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

검색

게시물 검색