使用回调函数:
为了在PHP中将一个函数作为参数使用,只需将函数的名称作为字符串传递即可:
array_map('my_function_name', $my_array);
如果该函数实际上是类中的静态方法,您可以将其作为参数传递,如下所示:
array_map(array('my_class_name', 'my_method_name'), $my_array);
如果该函数实际上是类中的非静态方法,则可以将其作为参数传递,如下所示:
array_map(array($my_object, 'my_method_name'), $my_array);
声明回调函数:
如果您在全局空间中声明,那么对于每个人来说都是好的和清晰的。
如果您将其声明在另一个函数内部,则它将是全局的,但在父函数第一次运行之前不会被定义,并且如果再次运行父函数,则会触发错误Cannot redefine function my_callback_function
。
如果您将其声明为lambda函数/匿名函数,则需要指定允许其查看/使用哪些上层作用域变量。
调用回调函数:
function my_api_function($callback_function) {
$callback_function($parameter1, $parameter2);
if(is_string($callback_function)) {
$callback_function($parameter1, $parameter2);
}
if(is_array($callback_function)) {
call_user_func_array($callback_function, array($parameter1, $parameter2));
}
}