使用回调函数:
为了在 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) {
// PHP 5.4:
$callback_function($parameter1, $parameter2);
// PHP < 5.3:
if(is_string($callback_function)) {
$callback_function($parameter1, $parameter2);
}
if(is_array($callback_function)) {
call_user_func_array($callback_function, array($parameter1, $parameter2));
}
}