博主信息
博文 5
粉丝 0
评论 0
访问量 2841
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
0806-请实例演绎你对回调函数与递归函数的理解?
马勇*JackMa
原创
569人浏览过

回调函数

  1. //命名函数作为回调函数
  2. function sum($n){ //数组求和
  3. $result = 0;
  4. for($i = 0;$i<count($n);$i++) $result += $n[$i];
  5. return $result;
  6. }
  7. function printArr($arr,$callback){ //打印数组中每一项的值,并利用回调函数求和
  8. foreach($arr as $value) echo $value.'<br>';
  9. return $callback($arr);
  10. }
  11. echo '求和结果为:'. printArr([1,89,34],'sum');
  12. ob_clean();
  13. //匿名函数作为回调函数
  14. $sum = function ($n){ //数组求和
  15. $result = 0;
  16. for($i = 0;$i<count($n);$i++) $result += $n[$i];
  17. return $result;
  18. } ;
  19. echo '求和结果为:'. printArr([1,89,34],$sum);

在网络请求或执行复杂业务逻辑时,需要耗费大量的时间,有可能会造成线程阻塞,影响代码的执行效率,就需要用使用系统提供的call_user_func()或者call_user_func_array()来执行回调

  • call_user_func(‘callback’,’参数1’,’参数2’,…);
  • call_user_func_array(‘callback’,[‘参数1’,’参数2’]);

递归函数

  1. //求3-100之间的正整数之和
  2. $count = 0;
  3. function compSum($n1,$n2){
  4. global $count;
  5. if($n1 <= $n2 ){
  6. $count += $n1;
  7. compSum(++$n1,$n2);
  8. }
  9. return $count;
  10. }
  11. echo '3到100之和:'.compSum(1,100);
  12. //递归的思维还有待提升,很容易把人绕晕,我这个递归的demo有点太牵强
批改老师:PHPzPHPz

批改状态:不合格

老师批语:你这个递归函数使用后的计算结果真的是3-100之和吗?
本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学