
call_user_func 함수는 함수 이름을 문자열로 전달받아 호출하는 함수입니다. 이 함수는 함수 이름이 문자열일 때만 작동합니다.
이러한 제약은 PHP의 함수 이름이 변수로 선언될 수 없기 때문입니다. PHP는 함수 이름을 변수로 선언할 수 없기 때문에, 함수 이름을 문자열로 전달받아 호출하는 함수인 call_user_func 함수도 함수 이름이 문자열일 때만 작동합니다.
위와 같은 코드를 수정하여 call_user_func 함수를 사용할 수 있는 방법은 다음과 같습니다.
#hostingforum.kr
php
$func_name = 'strlen';
call_user_func($func_name, 'hello');
위 코드에서는 strlen 함수를 문자열로 전달받아 호출합니다. strlen 함수는 하나의 인자를 받기 때문에, 두 번째 인자로 'hello'를 전달합니다.
또한, PHP 5.2.3부터는 call_user_func_array 함수가 추가되었습니다. 이 함수는 함수 이름을 문자열로 전달받아 호출하는 함수입니다. 함수 이름이 문자열일 때만 작동합니다.
#hostingforum.kr
php
$func_name = 'strlen';
$arguments = array('hello');
call_user_func_array($func_name, $arguments);
위 코드에서는 strlen 함수를 문자열로 전달받아 호출합니다. strlen 함수는 하나의 인자를 받기 때문에, 두 번째 인자로 'hello'를 전달합니다.
2025-03-07 06:01