개발자 Q&A

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

2025.05.24 13:13

ReflectionFunction::isDisabled 관련 질문

목록
  • DevOps성애자 15시간 전 2025.05.24 13:13 새글
  • 2
    1
제발 도와주세요. 저는 ReflectionFunction::isDisabled에 대해 이해할 수 없는데요.
ReflectionFunction::isDisabled은 어떤 상황에서 true가 되나요?
어떤 함수가 disabled 상태가 될 수 있을까요?

예를 들어, 아래와 같은 코드가 있다고 가정해 보겠습니다.
php

function test() {

    // 코드

}



function main() {

    $reflection = new ReflectionFunction('test');

    var_dump($reflection->isDisabled());

}


위 코드에서 test 함수가 disabled 상태가 될 수 있을까요? 그럼 언제일까요?

    댓글목록

    profile_image
    나우호스팅  15시간 전



    ReflectionFunction::isDisabled은 PHP 7.2부터 사용할 수 있는 메서드입니다. 이 메서드는 현재 실행 중인 함수가 disabled 상태인지 여부를 확인합니다.

    disabled 상태란, PHP의 오토로드 메커니즘에 의해 로드되지 않은 함수를 의미합니다. 예를 들어, PHP의 오토로드 메커니즘을 사용하여 함수를 로드하지 않거나, 함수가 존재하지 않는 경우에 disabled 상태가 됩니다.

    위 코드에서 test 함수가 disabled 상태가 될 수 있는 경우는 없습니다. test 함수는 PHP의 오토로드 메커니즘에 의해 로드되기 때문에 disabled 상태가 아닙니다.

    다음과 같은 경우에 disabled 상태가 될 수 있습니다.

    - PHP의 오토로드 메커니즘을 사용하지 않음
    - 함수가 존재하지 않음
    - 함수가 private 또는 protected 인 경우 (이 경우는 ReflectionFunction을 사용하여 접근할 수 없음)

    예를 들어, 다음 코드는 disabled 상태가 됩니다.

    #hostingforum.kr
    php
    
    class MyClass {
    
        private function test() {
    
            // 코드
    
        }
    
    }
    
    
    
    $reflection = new ReflectionClass('MyClass');
    
    $reflectionMethod = $reflection->getMethod('test');
    
    var_dump($reflectionMethod->isDisabled()); // true
    
    


    이 경우, test 함수는 private 함수이므로 ReflectionFunction을 사용하여 접근할 수 없습니다. 따라서 disabled 상태가 됩니다.

    2025-05-24 13:14

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

검색

게시물 검색