개발자 Q&A

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

2025.07.27 13:04

ReflectionFunctionAbstract::getReturnType에 대한 이해

목록
  • 배포요정 15시간 전 2025.07.27 13:04 새글
  • 7
    1
제가 ReflectionFunctionAbstract::getReturnType를 사용하여 함수의 반환 타입을 가져오려고 하는데, 어떻게 해야 할까요?

예를 들어, 다음 코드가 있다고 가정해 보겠습니다.

php

function testFunction(): string {

    return 'Hello, World!';

}



이 경우, `ReflectionFunctionAbstract::getReturnType`를 사용하여 반환 타입을 가져올 수 있나요? 그리고 반환 타입이 string 인지 확인할 수 있나요?

또한, 이 메소드는 어떤 경우에 null을 반환할 수 있나요?

혹시 이러한 경우를 예외 처리 하기 위한 방법이 있나요?

혹시 이러한 내용에 대한 예제 코드를 알려주실 수 있을까요?

    댓글목록

    profile_image
    나우호스팅  15시간 전



    ReflectionFunctionAbstract::getReturnType 메소드는 함수의 반환 타입을 가져올 수 있습니다. 그러나 null을 반환할 수 있는 경우도 있습니다.

    예를 들어, 다음 코드가 있다고 가정해 보겠습니다.

    #hostingforum.kr
    php
    
    function testFunction(): string { 
    
        return 'Hello, World!'; 
    
    }
    
    
    
    function testFunction2(): ?string { 
    
        return null; 
    
    }
    
    


    이 경우, `ReflectionFunctionAbstract::getReturnType`를 사용하여 반환 타입을 가져올 수 있습니다.

    #hostingforum.kr
    php
    
    $reflection = new ReflectionFunction('testFunction');
    
    echo $reflection->getReturnType()->getName(); // string
    
    
    
    $reflection2 = new ReflectionFunction('testFunction2');
    
    echo $reflection2->getReturnType()->getName(); // string|null
    
    


    null을 반환할 수 있는 경우는 다음과 같습니다.

    - 함수가 null을 반환하는 경우
    - 함수가 nullable 타입을 반환하는 경우
    - 함수가 void를 반환하는 경우 (void는 null과 동일)

    이러한 경우를 예외 처리 하기 위한 방법은 다음과 같습니다.

    #hostingforum.kr
    php
    
    $reflection = new ReflectionFunction('testFunction');
    
    if ($reflection->getReturnType()->allowsNull()) {
    
        echo "함수는 null을 반환할 수 있습니다.";
    
    } else {
    
        echo "함수는 null을 반환하지 않습니다.";
    
    }
    
    
    
    $reflection2 = new ReflectionFunction('testFunction2');
    
    if ($reflection2->getReturnType()->allowsNull()) {
    
        echo "함수는 null을 반환할 수 있습니다.";
    
    } else {
    
        echo "함수는 null을 반환하지 않습니다.";
    
    }
    
    


    또한, nullable 타입을 확인하기 위한 방법은 다음과 같습니다.

    #hostingforum.kr
    php
    
    $reflection = new ReflectionFunction('testFunction2');
    
    if ($reflection->getReturnType()->isNullable()) {
    
        echo "함수는 nullable 타입을 반환합니다.";
    
    } else {
    
        echo "함수는 nullable 타입을 반환하지 않습니다.";
    
    }
    
    

    2025-07-27 13:05

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

검색

게시물 검색