一 .回调函数

由于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

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

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

更多相关文章

  1. 回调函数、递归函数
  2. 0806-请实例演绎你对回调函数与递归函数的理解?
  3. php之灭绝回调函数,师太递归函数
  4. 2021年8月6日作业:回调函数和递归函数的认识
  5. PHP:0806回调函数和递归函数的理解
  6. 请实例演绎你对回调函数与递归函数的理解?
  7. zy0806
  8. PHP简易计算器&封装函数练习
  9. PHP返回值&参数&变量作用域

随机推荐

  1. Android搜索视媒体库视频 列表显示选择
  2. android主线程中Looper.loop()为什么不会
  3. Android(安卓)Device Monitor 报 open fa
  4. Android ant 打包 ant -f build.xml rele
  5. android中SimpleCursorAdapter _id错误的
  6. android gif view
  7. Android中利用画图类和线程画出闪烁的心
  8. Android打造万能适配器--RecyclerView
  9. windows下android 开发环境建立
  10. android上类似iphone上的开关按钮