Blogger Information
Blog 11
fans 0
comment 0
visits 10131
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
关于PHP的回调函数
小杂鱼
Original
2454 people have browsed it

回调函数

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)
Correcting teacher:灭绝师太灭绝师太

Correction status:qualified

Teacher's comments:昨晚讲解了call_user_func()回调对象函数,可以补充进去了
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post