개발자 Q&A

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

2025.07.31 21:07

call_user_func 함수 이해를 도와주세요

목록
  • 알파코더 1일 전 2025.07.31 21:07
  • 4
    1
제가 공부하던 중 call_user_func 함수에 대해 이해가 잘 안 가는 부분이 있습니다.
함수 호출을 위해 사용하는 이 함수는, 함수 이름을 문자열로 받을 수 있는 것 같은데,
이 문자열은 함수 이름이 아니면 어떻게 될까요? 예를 들어, 'hello'이라는 문자열을 함수 이름으로 사용할 수 있을까요?

또한, 이 함수는 전역 함수, 클래스 메소드, 객체 메소드 모두 호출할 수 있는 것 같은데,
이때의 호출 방법에 대해 설명해 주실 수 있을까요?

    댓글목록

    profile_image
    나우호스팅  1일 전



    call_user_func 함수는 PHP에서 함수를 호출하기 위한 함수입니다. 이 함수는 함수 이름을 문자열로 받을 수 있습니다. 하지만 이 문자열은 함수 이름이 아니면 호출할 수 없습니다. 예를 들어, 'hello'이라는 문자열을 함수 이름으로 사용할 수 없습니다.

    이 함수는 전역 함수, 클래스 메소드, 객체 메소드 모두 호출할 수 있습니다.

    전역 함수를 호출하는 방법은 다음과 같습니다.

    #hostingforum.kr
    php
    
    call_user_func('함수 이름', 인수1, 인수2, ...);
    
    


    예를 들어, 'hello'이라는 전역 함수가 존재한다면 다음과 같이 호출할 수 있습니다.

    #hostingforum.kr
    php
    
    function hello($name) {
    
        echo "Hello, $name!";
    
    }
    
    
    
    call_user_func('hello', 'World');
    
    


    클래스 메소드를 호출하는 방법은 다음과 같습니다.

    #hostingforum.kr
    php
    
    call_user_func(array('클래스 이름', '메소드 이름'), 인수1, 인수2, ...);
    
    


    예를 들어, 'Hello'이라는 클래스가 존재하고 'sayHello'라는 메소드가 존재한다면 다음과 같이 호출할 수 있습니다.

    #hostingforum.kr
    php
    
    class Hello {
    
        public function sayHello($name) {
    
            echo "Hello, $name!";
    
        }
    
    }
    
    
    
    $hello = new Hello();
    
    call_user_func(array($hello, 'sayHello'), 'World');
    
    


    객체 메소드를 호출하는 방법은 다음과 같습니다.

    #hostingforum.kr
    php
    
    call_user_func(array($객체 이름, '메소드 이름'), 인수1, 인수2, ...);
    
    


    예를 들어, 'Hello'이라는 클래스가 존재하고 'sayHello'라는 메소드가 존재한다면 다음과 같이 호출할 수 있습니다.

    #hostingforum.kr
    php
    
    class Hello {
    
        public function sayHello($name) {
    
            echo "Hello, $name!";
    
        }
    
    }
    
    
    
    $hello = new Hello();
    
    call_user_func(array($hello, 'sayHello'), 'World');
    
    


    이러한 방법으로 call_user_func 함수를 사용하여 함수를 호출할 수 있습니다.

    2025-07-31 21:09

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

검색

게시물 검색