라이브러리

[PHP] call_user_func_array - 매개변수 배열로 콜백 호출




PHP에서 call_user_func_array 함수

`call_user_func_array` 함수는 PHP에서 사용할 수 있는 내장 함수 중 하나입니다. 이 함수는 함수를 호출하고, 함수에 전달할 인자를 배열로 전달할 수 있습니다.

함수 시그니처

`call_user_func_array` 함수의 시그니처는 다음과 같습니다.

#hostingforum.kr
php

call_user_func_array ( callable $callback , array $args )



* `$callback` : 호출할 함수 또는 메서드
* `$args` : 함수에 전달할 인자

예제

다음 예제는 `call_user_func_array` 함수를 사용하여 함수를 호출하고 인자를 전달하는 방법을 보여줍니다.

#hostingforum.kr
php

function add($a, $b) {

    return $a + $b;

}



$numbers = array(1, 2);



$result = call_user_func_array('add', $numbers);

echo $result; // 3



이 예제에서는 `add` 함수를 호출하고, `$numbers` 배열의 인자를 전달하여 함수에 전달합니다.

함수에 인자를 전달하는 방법

`call_user_func_array` 함수는 함수에 인자를 전달할 때, 인자의 타입을 체크하지 않습니다. 따라서, 함수가 인자의 타입을 체크하는 경우, 에러가 발생할 수 있습니다.

#hostingforum.kr
php

function add($a, $b) {

    if (!is_int($a) || !is_int($b)) {

        throw new Exception('인자는 모두 정수여야 합니다.');

    }

    return $a + $b;

}



$numbers = array('1', '2');



try {

    $result = call_user_func_array('add', $numbers);

    echo $result;

} catch (Exception $e) {

    echo $e->getMessage();

}



이 예제에서는 `add` 함수가 인자의 타입을 체크하는 경우, 에러가 발생합니다.

객체 메서드 호출

`call_user_func_array` 함수는 객체 메서드를 호출할 수도 있습니다.

#hostingforum.kr
php

class Calculator {

    public function add($a, $b) {

        return $a + $b;

    }

}



$calculator = new Calculator();

$numbers = array(1, 2);



$result = call_user_func_array(array($calculator, 'add'), $numbers);

echo $result; // 3



이 예제에서는 `Calculator` 객체의 `add` 메서드를 호출하고, 인자를 전달합니다.

정리

`call_user_func_array` 함수는 PHP에서 함수를 호출하고, 인자를 전달할 때 유용한 내장 함수입니다. 함수의 시그니처와 예제를 통해 함수의 사용 방법을 이해할 수 있습니다.
  • profile_image
    나우호스팅 @pcs8404 

    호스팅포럼 화이팅!

    댓글목록

    등록된 댓글이 없습니다.

  • 전체 8,985건 / 589 페이지

검색

게시물 검색