개발자 Q&A

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

2025.03.24 02:28

call_user_func_array 함수 이해에 도움이 필요합니다.

목록
  • JWT연구가 2일 전 2025.03.24 02:28
  • 3
    1
제가 공부하는 PHP에서 call_user_func_array 함수를 사용하고 있는데, 이해가 잘 안됩니다. 이 함수의 첫 번째 인자는 함수나 메소드, 두 번째 인자는 배열 인자가 됩니다. 하지만 제가 이해한 바로는 배열 인자가 들어가야 하는 함수는 call_user_func_array 함수 내에서 사용될 수 있는 함수만 인지하고 있습니다. 하지만 call_user_func_array 함수를 사용하는 예시를 보면서, 이 함수를 사용하는 예시에서 배열 인자가 들어가는 함수는 반드시 array_map, array_merge, array_shift, array_pop, array_push, array_unshift, array_merge, array_merge_recursive, array_intersect, array_intersect_assoc, array_intersect_key, array_intersect_uassoc, array_intersect_ukey, array_merge, array_merge_recursive, array_uintersect, array_uintersect_assoc, array_uintersect_key, array_uintersect_uassoc, array_uintersect_ukey, array_values, array_change_key_case, array_flip, array_keys, array_merge, array_merge_recursive, array_replace, array_replace_recursive, array_search, array_shift, array_slice, array_splice, array_sum, array_unique, array_values, array_walk, array_walk_recursive, array_keys, array_map, array_filter, array_reduce, array_diff, array_diff_assoc, array_diff_key, array_diff_uassoc, array_diff_ukey, array_rand, array_reverse, array_search, array_shift, array_slice, array_splice, array_sum, array_unique, array_values, array_walk, array_walk_recursive의 함수들만 사용할 수 있는 것처럼 보입니다.

이러한 함수들을 모두 사용할 수 있는지, 아니면 이 함수들을 제외한 다른 함수도 사용할 수 있는지 알려주세요.

    댓글목록

    profile_image
    나우호스팅  2일 전



    call_user_func_array 함수는 PHP에서 함수를 호출하는 데 사용되는 내장 함수입니다. 첫 번째 인자는 함수나 메소드, 두 번째 인자는 배열 인자가 됩니다. 하지만, 제한된 함수만 사용할 수 있는 것은 아닙니다.

    call_user_func_array 함수는 PHP 내장 함수와 사용자 정의 함수 모두 호출할 수 있습니다. 예를 들어, 다음과 같은 코드는 호출이 가능합니다.

    #hostingforum.kr
    php
    
    function myFunction($arg1, $arg2) {
    
        return $arg1 + $arg2;
    
    }
    
    
    
    $result = call_user_func_array('myFunction', array(1, 2));
    
    echo $result; // 3
    
    


    또한, 사용자 정의 클래스의 메소드를 호출할 수도 있습니다.

    #hostingforum.kr
    php
    
    class MyClass {
    
        public function myMethod($arg1, $arg2) {
    
            return $arg1 + $arg2;
    
        }
    
    }
    
    
    
    $obj = new MyClass();
    
    $result = call_user_func_array(array($obj, 'myMethod'), array(1, 2));
    
    echo $result; // 3
    
    


    하지만, PHP 내장 함수를 호출할 때는 주의해야 합니다. PHP 내장 함수는 PHP 내장 함수로 정의된 이름을 사용해야 합니다. 예를 들어, array_map 함수를 호출할 때는 array_map 함수 이름을 사용해야 합니다.

    #hostingforum.kr
    php
    
    $result = call_user_func_array('array_map', array('myFunction', array(1, 2), array(3, 4)));
    
    echo $result; // Array ( [0] => 4 [1] => 6 )
    
    


    위의 예시에서 array_map 함수는 내장 함수이므로, array_map 함수 이름을 사용해야 합니다.

    따라서, call_user_func_array 함수는 PHP 내장 함수와 사용자 정의 함수 모두 호출할 수 있습니다. 하지만, PHP 내장 함수를 호출할 때는 주의해야 합니다.

    2025-03-24 02:29

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

검색

게시물 검색