
SwooleCoroutine::call_user_func_array 메소드는 callable 객체를 첫 번째 인자로 받습니다. 하지만 callable 객체가 아닌 일반적인 함수를 호출하고 싶을 때는 어떻게 해야 할까요?
일반적인 함수를 호출하고 싶다면, 함수 이름을 문자열로 변환하여 사용할 수 있습니다. 예를 들어, 다음과 같이 사용할 수 있습니다.
#hostingforum.kr
php
function test($a, $b) {
echo $a + $b . "n";
}
$coroutine = new SwooleCoroutine();
$coroutine->call_user_func_array('test', array(1, 2));
하지만 이 경우, PHP 7.0.0 이상에서 사용하는 경우에는 함수 이름을 문자열로 변환하는 대신, 함수 이름을 직접 사용할 수 있습니다.
#hostingforum.kr
php
function test($a, $b) {
echo $a + $b . "n";
}
$coroutine = new SwooleCoroutine();
$coroutine->call_user_func_array('test', array(1, 2));
이 방법을 사용하면, 함수 이름을 문자열로 변환하는 것이 필요 없기 때문에 더 간단하고 직관적입니다.
callable 객체로 변환하여 호출하는 방법도 있습니다. 예를 들어, 다음과 같이 사용할 수 있습니다.
#hostingforum.kr
php
function test($a, $b) {
echo $a + $b . "n";
}
$coroutine = new SwooleCoroutine();
$coroutine->call_user_func_array(array('test'), array(1, 2));
이 방법을 사용하면, 함수 이름을 문자열로 변환하는 대신, 함수를 직접 callable 객체로 변환할 수 있습니다.
이러한 문제를 해결하는 방법은 위에 설명한 것과 같습니다. callable 객체를 첫 번째 인자로 받는 메소드를 사용할 때, callable 객체가 아닌 일반적인 함수를 호출하고 싶을 때는 함수 이름을 문자열로 변환하거나 직접 callable 객체로 변환하여 호출할 수 있습니다.
2025-04-17 15:03