我有一個參數數組,我想通過call_user_func
傳遞給函數。以下代碼目前會給出錯誤:Missing argument 2 for Closure
。這怎麼可以重寫才能正常工作?將多個參數傳遞給匿名函數w/call_user_func
$args = array('foo', 'bar');
call_user_func(function($arg1, $arg2) {}, $args);
我有一個參數數組,我想通過call_user_func
傳遞給函數。以下代碼目前會給出錯誤:Missing argument 2 for Closure
。這怎麼可以重寫才能正常工作?將多個參數傳遞給匿名函數w/call_user_func
$args = array('foo', 'bar');
call_user_func(function($arg1, $arg2) {}, $args);
嘗試call_user_func_array()如果您正在尋找傳遞參數數組。
要麼一個接一個地傳遞它們,要麼讓回調函數接受一個數組作爲參數並在內部進行解析。
知道這個答案。但是,以下也很好。
100000之間Exec的訪問
1.006599:call_user_func($ FUNC,$值)
1.193323:call_user_func((陣列($對象,$ FUNC),$值)
1.232891:call_user_func_array($ func,array($ value))
1.309725:call_user_func_array((array($ object,$ func),array($ value)
如果您需要使用call_user_func:
call_user_func(
$function,
$arg1,$arg2
);
如果您需要使用call_user_func_array:
call_user_func_array(
$function,
array($arg1,$arg2)
);
在設計上既可以在數組傳遞不管。然而,也可以通過設計使用,而不是其他。這一切都取決於它被用於什麼。在call_user_func中,一個簡單的數組集傳遞得很好,速度更快。
比我的答案更好。 – 2012-03-16 17:20:21
@KyleDecot最好的方式來感謝我接受一個答案,如果這對你有效:) – Crashspeeder 2012-03-16 18:11:32