什么是回调函数,回调函数的写法
时间: 2023-08-23 15:11:15 浏览: 54
回调函数是指在编程中,将一个函数作为参数传递给另一个函数,并在需要的时候被调用执行的函数。回调函数的写法有多种形式。
一种常见的写法是使用函数字符串,通过调用`call_user_func`函数来执行回调函数。例如,在PHP中可以使用以下方式定义和调用回调函数:
```
function insert($i){
echo "插入数据{$i}\n";
// 模拟插入数据库插入的操作
return true;
}
$arr = range(0, 1000);
function action(array $arr, callable $function){
foreach ($arr as $key => $value) {
if ($value % 10 == 0){
// 当满足条件时,执行回调函数处理
call_user_func($function, $value);
// 调用回调事件
}
}
}
action($arr, 'insert');
```
另一种常见的写法是使用匿名函数作为回调函数。匿名函数是一种没有具体名称的函数,可以直接在调用时定义和传递。例如,在PHP中可以使用以下方式定义和调用匿名函数作为回调函数:
```
$arr = range(0, 1000);
function action(array $arr, callable $function){
foreach ($arr as $key => $value) {
if ($value % 10 == 0){
// 当满足条件时,执行回调函数处理
call_user_func($function, $value);
// 调用回调事件
}
}
}
action($arr, function($i){
echo "插入数据{$i}\n";
return true;
});
```
此外,还可以使用类静态方法和类方法作为回调函数。类静态方法可以直接通过类名调用,而类方法需要先创建一个类的实例对象。例如,在PHP中可以使用以下方式定义和调用类静态方法和类方法作为回调函数:
```
$arr = range(0, 1000);
function action(array $arr, callable $function){
foreach ($arr as $key => $value) {
if ($value % 10 == 0){
// 当满足条件时,执行回调函数处理
call_user_func($function, $value);
// 调用回调事件
}
}
}
class A {
static function insert($i){
echo "插入数据{$i}\n";
return true;
}
}
action($arr, 'A::insert');
action($arr, array('A', 'insert'));
class A {
function insert($i){
echo "插入数据{$i}\n";
return true;
}
}
$a = new A();
action($arr, array($a, 'insert'));
```
综上所述,回调函数的写法包括使用函数字符串、匿名函数、类静态方法和类方法等多种形式。