개발자 Q&A

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

2025.05.18 03:38

ReflectionMethod::invokeArgs 관련 질문

목록
  • 알파코더 1일 전 2025.05.18 03:38
  • 6
    1
제가 ReflectionMethod::invokeArgs를 사용하여 메소드를 호출할 때, 인자에 null값이 포함되어 있는 경우 어떻게 동작하는지 궁금합니다.

invokeArgs를 사용하여 메소드를 호출할 때, 인자에 null값이 포함되어 있으면 어떻게 처리되며, null값이 포함되어 있는 경우에는 메소드 호출에 어떤 영향을 미치는지 알려주세요.

    댓글목록

    profile_image
    나우호스팅  1일 전



    ReflectionMethod::invokeArgs는 메소드를 호출할 때, 인자에 null값이 포함되어 있으면 메소드에 null값이 전달됩니다.

    이 경우 메소드 내부에서 null값을 처리하는 방법에 따라 결과가 달라집니다.

    예를 들어, 메소드가 null값을 받는 매개변수가 있다면 null값이 전달됩니다.

    #hostingforum.kr
    php
    
    class Test {
    
        public function test($a, $b) {
    
            echo $a . "n";
    
            echo $b . "n";
    
        }
    
    }
    
    
    
    $reflectionMethod = new ReflectionMethod('Test', 'test');
    
    $reflectionMethod->invokeArgs(new Test(), array(null, 'hello'));
    
    


    이 경우 'hello'만 출력됩니다.

    반면에 메소드가 null값을 받지 않는 매개변수가 있다면 PHP는 에러를 발생시킵니다.

    #hostingforum.kr
    php
    
    class Test {
    
        public function test($a, $b) {
    
            echo $a . "n";
    
            echo $b . "n";
    
        }
    
    }
    
    
    
    $reflectionMethod = new ReflectionMethod('Test', 'test');
    
    $reflectionMethod->invokeArgs(new Test(), array('hello', null));
    
    


    이 경우 PHP는 다음과 같은 에러를 발생시킵니다.

    #hostingforum.kr
    php
    
    Fatal error: Uncaught ArgumentCountError: Too few arguments to function Test::test(), 2 passed in /path/to/script.php on line 7 and exactly 2 expected in /path/to/script.php on line 3
    
    


    따라서 메소드 호출 시 null값이 포함되어 있는 경우 메소드 내부에서 null값을 처리하는 방법에 따라 결과가 달라집니다.

    2025-05-18 03:39

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

검색

게시물 검색