1 概念
回调函数的概念就是在主进程执行的过程中,突然跳转到预先设置好的函数中去执行的函数。
回调函数的几种写法
函数字符串:
function insert($i){
echo "插入数据{$i}\n"; // 模拟插入数据库插入的操作
return true;
}
$arr = range(0, 1000); // 模拟生成1001条数据
function action(array $arr, callable $function){
foreach ($arr as $key => $value) {
if ($value % 10 == 0){ // 当满足条件是,去执行回调函数处理
call_user_func($function, $value); // 调用回调事件
}
}
}
action($arr, 'insert');
匿名函数
// 回调函数的第二种写法 匿名函数
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;
})
类静态方法
// 3 类静态方法
$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']);
类方法
// 类方法
$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 {
function insert($i){
echo "插入数据{$i}\n";
return true;
}
}
$a = new A();
action($arr, array[$a, 'insert']);
|