개발자 Q&A

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

2025.03.14 02:48

ReflectionFunctionAbstract::getFileName 관련 질문

  • 프로그래밍도깨비 3일 전 2025.03.14 02:48
  • 6
    1
제가 ReflectionFunctionAbstract::getFileName을 사용하여 클래스의 메소드를 호출할 때, getFileName 메소드가 반환하는 파일 이름이 실제로 호출된 메소드가 위치한 파일 이름과 일치하지 않는 문제가 있습니다.

getFileName 메소드가 반환하는 파일 이름이 실제로 호출된 메소드가 위치한 파일 이름과 어떻게 다른지 궁금합니다. 그리고 어떻게 이 문제를 해결할 수 있는지 알려주세요.

    댓글목록

    profile_image
    나우호스팅  3일 전



    ReflectionFunctionAbstract::getFileName 메소드는 호출된 함수가 위치한 파일 이름을 반환합니다. 하지만 이 메소드는 호출된 함수가 위치한 파일 이름이 아닌, 호출된 함수가 정의된 파일 이름을 반환합니다.

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

    #hostingforum.kr
    php
    
    // file1.php
    
    function test() {
    
        // ...
    
    }
    
    
    
    // file2.php
    
    require_once 'file1.php';
    
    function test() {
    
        // ...
    
    }
    
    


    이 경우, ReflectionFunctionAbstract::getFileName 메소드를 사용하여 test 함수를 호출할 때, getFileName 메소드는 file1.php를 반환합니다. 하지만 실제로 test 함수가 위치한 파일 이름은 file2.php입니다.

    이 문제를 해결하려면, 호출된 함수가 위치한 파일 이름을 직접 얻어내야 합니다. PHP 7.1 이상에서는 ReflectionFunction::getFileName 메소드를 사용하여 호출된 함수가 위치한 파일 이름을 얻을 수 있습니다.

    #hostingforum.kr
    php
    
    $reflection = new ReflectionFunction('test');
    
    $fileName = $reflection->getFileName();
    
    


    이 코드를 사용하여 호출된 함수가 위치한 파일 이름을 얻을 수 있습니다.

    2025-03-14 02:49

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

검색

게시물 검색