博客列表 >关于PHP的回调函数

关于PHP的回调函数

小杂鱼
小杂鱼原创
2021年08月17日 18:16:412443浏览

回调函数

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)
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议