
SwooleCoroutine::call_user_func_array는 인터럽트가 발생해도 호출이 가능합니다. 이 메서드는 콜백 함수를 호출하고, 인자를 배열로 전달합니다.
인자를 전달하는 방법은 다음과 같습니다.
#hostingforum.kr
php
$callback = function($arg1, $arg2) {
// 콜백 함수 내용
};
$coroutine = new SwooleCoroutine();
$coroutine->start(function() use ($callback, $arg1, $arg2) {
SwooleCoroutine::call_user_func_array($callback, [$arg1, $arg2]);
});
이 예제에서는 `$arg1`과 `$arg2`를 콜백 함수에 전달합니다. `$arg1`과 `$arg2`는 전역 변수가 아니므로, 콜백 함수 내부에서 사용할 수 있습니다.
만약 전역 변수를 사용해야 하는 경우, 전역 변수를 함수 내부로 전달해야 합니다.
#hostingforum.kr
php
$callback = function($arg1, $arg2, $globalVar) {
// 콜백 함수 내용
};
$globalVar = '전역 변수';
$coroutine = new SwooleCoroutine();
$coroutine->start(function() use ($callback, $globalVar, $arg1, $arg2) {
SwooleCoroutine::call_user_func_array($callback, [$arg1, $arg2, $globalVar]);
});
이 예제에서는 `$globalVar`를 콜백 함수에 전달합니다.
SwooleCoroutine::call_user_func_array는 인터럽트가 발생해도 호출이 가능합니다. 하지만, 인터럽트가 발생한 경우, 콜백 함수가 중단될 수 있습니다. 이 경우, 콜백 함수가 중단되지 않도록 예외 처리를 해야 합니다.
#hostingforum.kr
php
$callback = function($arg1, $arg2) {
try {
// 콜백 함수 내용
} catch (Exception $e) {
// 예외 처리 내용
}
};
2025-07-15 07:08