博客列表 >对回调函数和递归函数的理解

对回调函数和递归函数的理解

手机用户1617360551
手机用户1617360551原创
2021年08月08日 11:34:48947浏览

一 .回调函数

由于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 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议