개발자 Q&A

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

2025.03.30 14:12

ReflectionMethod::invoke 관련 질문

목록
  • 취약점사냥꾼 2일 전 2025.03.30 14:12
  • 2
    1
제가 ReflectionMethod::invoke를 사용하여 메소드를 호출하려고 하는데,
어떻게하면 인자값을 전달할 수 있을까요?

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

$reflectionMethod = new ReflectionMethod('MyClass', 'myMethod');

$reflectionMethod->invoke($obj, '인자1', '인자2');


여기서 인자1과 인자2를 어떻게 전달할 수 있을까요?

혹시 다른 방법이 있나요?

제가 이해한 바는 invoke() 메소드의 첫 번째 인자는 호출할 대상 객체 인스턴스이고,
두 번째 인자는 호출할 메소드 이름이 아니라 인자값을 전달하는 것인 것 같습니다.

그런데 어떻게 하면 인자값을 전달할 수 있을까요?

제가 궁금한 점을 질문드려 죄송합니다.

    댓글목록

    profile_image
    나우호스팅  2일 전



    ReflectionMethod::invoke() 메소드는 호출할 대상 객체 인스턴스와 인자값을 하나의 배열로 전달받습니다.

    예를 들어, 다음과 같이 인자값을 배열로 전달할 수 있습니다.

    #hostingforum.kr
    php
    
    $reflectionMethod = new ReflectionMethod('MyClass', 'myMethod');
    
    $reflectionMethod->invoke($obj, ['인자1', '인자2']);
    
    


    또는 다음과 같이 인자값을 여러 개의 인자로 전달할 수 있습니다.

    #hostingforum.kr
    php
    
    $reflectionMethod = new ReflectionMethod('MyClass', 'myMethod');
    
    $reflectionMethod->invoke($obj, '인자1', '인자2');
    
    


    또 다른 방법으로는, invokeArgs() 메소드를 사용하는 것입니다. 이 메소드는 invoke() 메소드와 동일한 역할을 하지만, 인자값을 여러 개의 인자로 전달할 때 더 편리합니다.

    #hostingforum.kr
    php
    
    $reflectionMethod = new ReflectionMethod('MyClass', 'myMethod');
    
    $reflectionMethod->invokeArgs($obj, ['인자1', '인자2']);
    
    


    invokeArgs() 메소드는 invoke() 메소드와 invoke() 메소드의 첫 번째 인자만 다릅니다. invokeArgs() 메소드는 invoke() 메소드의 첫 번째 인자와 invoke() 메소드의 두 번째 인자를 모두 받습니다.

    2025-03-30 14:13

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

검색

게시물 검색