关于PHP的回调函数
16lz
2021-08-18
回调函数
1.调用函数时不传递标准的变量作为参数,而是将另一个函数作为参数传递到调用的函数中。
2.PHP回调是指在主线函数执行过程中,先跳去执行作为参数的回调函数,回调函数执行结束后,再继续执行主线函数。
示例1
function demo($arr,$callback) //主线函数
{
$newArr = $arr; //主线函数获取到参数
$result = $callback($newArr); //主线函数获取到回调函数,因为是函数所以先跳去执行函数,执行结束后获得结果返回
return $result; //主线函数返回由回调函数获得的结果
}
$newPlus = function($newArr) //回调函数
{
$c = array_sum($newArr); //array_sum() 求数组中的值的和
return $c; //返回求和的值
};
var_dump(demo([1,2,3], $newPlus)); //int(6)
示例2
function demo($arr, $callback)
{
$newArr = $arr;
$result = $callback($newArr);
return $result;
}
$num = demo([1,2,3], function($newArr){
$c = array_sum($newArr);
return $c;
});
var_dump($num); //int(6)
异步调用
因为PHP脚本是单线程的,脚本是同步执行的,如果遇到耗时函数会发生线程阻塞,所以要改为异步执行。
全局函数的回调
//1.call_user_func($callback, $parameter) 第一个参数 callback 是被调用的回调函数,其余参数是回调函数的参数。
$demo = call_user_func(function($newArr){
$c = array_sum($newArr);
return $c;
},[1,2,3]);
var_dump($demo); // int(6)
//1.call_user_func_array($callback, [$parameter]) 第一个参数 callback 是被调用的回调函数,并把一个数组参数作为回调函数的参数
$demo1 = call_user_func_array(function($newArr){
$c = array_sum($newArr);
return $c;
},[[1,2,3]]);
var_dump($demo1); // int(6)
$demo2 = call_user_func_array(function($newArr){
$c = array_sum($newArr);
return $c;
},array([1,2,3]));
var_dump($demo2); // int(6)
更多相关文章
- 快递100参数错误-面单类错误(电子面单/发货单/模板)常见问题和解
- 类与对象的概念,类与对象的特点及构造函数
- 1. 请实例演绎你对面向对象类与对象关系的理解? 2. 请实例演绎oop
- 08-04作业 : 函数的参数,闭包 ,全局作用域
- vue完整版和运行版版的区别
- 类的属性、封装、构造函数
- 返回数组中所有的值并给其建立从0开始递增的数字索引 $arr = [4=
- 给定一个数组$arr = [23,3,45,6,78,8,34],筛选其偶数成员组成新
- 数组下标重新归序