博主信息
博文 23
粉丝 0
评论 0
访问量 25872
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
对回调函数和递归函数的理解
手机用户1617360551
原创
1188人浏览过

一 .回调函数

由于PHP脚本时单线程,即从上到下一步步执行,如果遇到耗时函数就会发生阻塞,这是如果使用回调异步执行,就能提高脚本执行效率;

异步执行,我的理解是,当脚本触发回调时,会分派出一个支线去执行不影响主线的继续执行;

回调函数作为一个参数应用到一个函数中,能够扩展函数功能

  1. <?php
  2. function demo($demo1)
  3. {
  4. for ($i=0; $i < 50; $i++) {
  5. if($demo1($i))//这里声明一个变量函数,调用一个自定义功能
  6. continue;
  7. echo $i.'<br>';
  8. }
  9. }
  10. function demo1($num){
  11. return $num % 2 == 0 ;
  12. }
  13. function demo2($num){
  14. return $num % 5 == 0;
  15. }
  16. //demo('demo1');
  17. demo('demo2');//使用一个函数作为另一个函数的实参,扩展了函数功能

系统内置回调函数

  1. <?php
  2. function demo($name)
  3. {
  4. echo "hello,".$name;
  5. }
  6. //demo('灭绝老师');//传统调用
  7. call_user_func('demo','朱老师');//回调函数
  8. echo '<hr>';
  9. function demo1($name,$do)
  10. {
  11. echo $name . '今天教我们'. $do;
  12. }
  13. //demo1('灭绝老师','回调函数');// 传统调用
  14. call_user_func_array('demo1',['灭绝老师','递归函数']);//数组回调

二.递归函数

递归函数是函数自己调用自己的一种类型,应用于无限级列表,树形菜单等操作,递归函数通过设置一个条件,弄够达到依次进入,依次出来的效果;

  1. <?php
  2. function demo($num)
  3. {
  4. $num++;
  5. echo $num;
  6. echo $num;
  7. }
  8. demo(2);//这是一个简单将一个参数加一函数

下边用自己调用自己,并设置条件,达到依次加再依次减的效果

  1. <?php
  2. function demo($num)
  3. {
  4. $num++;
  5. echo $num;
  6. //这里必须设置一个条件,否则就会无限调用自己,进入一个无限循环
  7. if($num<8)//设置一个条件,当不满足条件时,调用自己
  8. {
  9. demo($num);//调用自己
  10. }else{
  11. echo '**';
  12. }
  13. echo $num;
  14. }
  15. demo(2);//开始运行

输出结果为: 345678**876543

由于脚本时由上往下依次执行的,所以出现这种先依次递加,然后不满足条件以后,再一层一层退出.

这是目前我对回调函数和递归函数的理解,有错误和不足的地方,希望老师指导!!!!!!

批改老师:天蓬老师天蓬老师

批改状态:合格

老师批语:线程,效率等可暂不考虑, 目前写对, 才是第一位
本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系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+教程免费学