回调函数

1.调用函数时不传递标准的变量作为参数,而是将另一个函数作为参数传递到调用的函数中。

2.PHP回调是指在主线函数执行过程中,先跳去执行作为参数的回调函数,回调函数执行结束后,再继续执行主线函数。

示例1

  1. function demo($arr,$callback) //主线函数
  2. {
  3. $newArr = $arr; //主线函数获取到参数
  4. $result = $callback($newArr); //主线函数获取到回调函数,因为是函数所以先跳去执行函数,执行结束后获得结果返回
  5. return $result; //主线函数返回由回调函数获得的结果
  6. }
  7. $newPlus = function($newArr) //回调函数
  8. {
  9. $c = array_sum($newArr); //array_sum() 求数组中的值的和
  10. return $c; //返回求和的值
  11. };
  12. var_dump(demo([1,2,3], $newPlus)); //int(6)

示例2

  1. function demo($arr, $callback)
  2. {
  3. $newArr = $arr;
  4. $result = $callback($newArr);
  5. return $result;
  6. }
  7. $num = demo([1,2,3], function($newArr){
  8. $c = array_sum($newArr);
  9. return $c;
  10. });
  11. var_dump($num); //int(6)

异步调用

因为PHP脚本是单线程的,脚本是同步执行的,如果遇到耗时函数会发生线程阻塞,所以要改为异步执行。

全局函数的回调

  1. //1.call_user_func($callback, $parameter) 第一个参数 callback 是被调用的回调函数,其余参数是回调函数的参数。
  2. $demo = call_user_func(function($newArr){
  3. $c = array_sum($newArr);
  4. return $c;
  5. },[1,2,3]);
  6. var_dump($demo); // int(6)
  1. //1.call_user_func_array($callback, [$parameter]) 第一个参数 callback 是被调用的回调函数,并把一个数组参数作为回调函数的参数
  2. $demo1 = call_user_func_array(function($newArr){
  3. $c = array_sum($newArr);
  4. return $c;
  5. },[[1,2,3]]);
  6. var_dump($demo1); // int(6)
  7. $demo2 = call_user_func_array(function($newArr){
  8. $c = array_sum($newArr);
  9. return $c;
  10. },array([1,2,3]));
  11. var_dump($demo2); // int(6)

更多相关文章

  1. 快递100参数错误-面单类错误(电子面单/发货单/模板)常见问题和解
  2. 类与对象的概念,类与对象的特点及构造函数
  3. 1. 请实例演绎你对面向对象类与对象关系的理解? 2. 请实例演绎oop
  4. 08-04作业 : 函数的参数,闭包 ,全局作用域
  5. vue完整版和运行版版的区别
  6. 类的属性、封装、构造函数
  7. 返回数组中所有的值并给其建立从0开始递增的数字索引 $arr = [4=
  8. 给定一个数组$arr = [23,3,45,6,78,8,34],筛选其偶数成员组成新
  9. 数组下标重新归序

随机推荐

  1. GridView示例2(自动增长)
  2. Android UI之RadioGroup
  3. Android ndk-stack tool
  4. Android调试笔记——Installation error
  5. Android应用程序资源管理器
  6. Android com.android.support 版本不一致
  7. android进度对话框的使用
  8. android一些不常用的事件
  9. Android第二十六课 调试模式 file.exits
  10. 2018-09-20~2018-09-21 Google Developer