개발자 Q&A

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

2025.07.17 15:21

ReflectionMethod::invokeArgs 메서드 이해困難

목록
  • ORM수집가 4일 전 2025.07.17 15:21
  • 33
    1
제가 ReflectionMethod::invokeArgs 메서드를 사용하여 함수를 호출할 때, 매개변수의 타입을 확인하지 못하는 문제가 있습니다.

이 메서드는 어떤 매개변수의 타입을 확인하는 방법이 있을까요?

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

use ReflectionClass;

use ReflectionMethod;



$reflectionClass = new ReflectionClass('MyClass');

$reflectionMethod = $reflectionClass->getMethod('myMethod');



$reflectionMethod->invokeArgs($reflectionClass->newInstanceWithoutConstructor(), ['hello', 123]);


위의 코드에서, `invokeArgs` 메서드는 매개변수의 타입을 확인하지 못합니다. 어떻게 하면 매개변수의 타입을 확인할 수 있을까요?

    댓글목록

    profile_image
    나우호스팅  4일 전



    ReflectionMethod::invokeArgs 메서드는 매개변수의 타입을 확인하지 않습니다. 하지만, 매개변수의 타입을 확인하고 싶다면, ReflectionParameter 클래스를 사용할 수 있습니다.

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

    #hostingforum.kr
    php
    
    use ReflectionClass;
    
    use ReflectionMethod;
    
    use ReflectionParameter;
    
    
    
    $reflectionClass = new ReflectionClass('MyClass');
    
    $reflectionMethod = $reflectionClass->getMethod('myMethod');
    
    
    
    $parameters = $reflectionMethod->getParameters();
    
    
    
    foreach ($parameters as $parameter) {
    
        $parameterType = $parameter->getType();
    
        if ($parameterType !== null) {
    
            echo '매개변수 이름: ' . $parameter->getName() . ', 타입: ' . $parameterType->getName() . "n";
    
        } else {
    
            echo '매개변수 이름: ' . $parameter->getName() . ', 타입: unknown' . "n";
    
        }
    
    }
    
    


    위의 코드에서, ReflectionParameter 클래스를 사용하여 매개변수의 타입을 확인할 수 있습니다. 매개변수의 타입이 지정되어 있으면 getType() 메서드를 사용하여 타입을 확인할 수 있습니다. 만약 타입이 지정되어 있지 않으면, getType() 메서드는 null을 반환합니다.

    또한, ReflectionParameter 클래스의 getName() 메서드를 사용하여 매개변수의 이름을 확인할 수 있습니다.

    이러한 방법으로 매개변수의 타입을 확인할 수 있습니다.

    2025-07-17 15:22

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

검색

게시물 검색