php回调函数原理和实例

原理

自己调用自己 称之为“递归”,而不是回调

你也知道回调的关键是这个回
既然是回,那么就有一个谁是主体的问题,因为回调是往回调用的意思
我调用了函数A,而函数A在执行过程中调用了我提供的函数B,这个函数B就称为函数A的回调函数
显然主体是函数A

我们知道,函数是完成某个特定功能的代码集合,在函数执行的过程中,一般是不能去干预他的行为的
当函数被设计成带有回调功能时,我们就有可能在函数的执行过程中,通过回调函数去干预他。例如

PHP code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
function foo($n$f='') {
  if($n < 1) return;
  for($i=0; $i<$n$i++) {
    echo $f $f($i) : $i;
  }
}
//无回调时
foo(5); //01234
//有回调时
function f1($v) {
  return $v $v;
}
foo(5, 'f1'); //02468

这里就是foo函数去调用(回调)了f1函数

代码

 1 <?php
 2 function text1(){
 3     echo '这个是text1';
 4
 5 }
 6 function text2($username){
 7     echo '这个是text2'.'<br/>'.'这里是username的值:'.$username;
 8 }
 9 //回调函数:函数体内的名称是我们传入的参数();
10 function callBack($call,$str){
11     $call($str);
12 }
13 //回调函数的使用就是传入的参数是你想要回调的函数名称
14 callBack('text2','小明');
15 echo '<hr/>';
16 call_user_func('text2','测试');

10、回调函数的函数名,和回调函数需要的参数值

16、有自己写的回调函数和call_user_func两种

回调函数,通过别的函数来调用这个函数,所以要传给调用这个函数的那个函数这个函数的名字和需要的参数。

转载于:https://www.cnblogs.com/Renyi-Fan/p/8545642.html

php回调函数原理和实例相关推荐

  1. 回调函数原理与Python实现

    回调函数的定义与普通函数并没有本质的区别,但一般不直接调用,而是作为参数传递给另一个函数,当另一个函数中触发了某个事件.满足了某个条件时就会自动调用回调函数.下面的代码用来删除可能会包含只读属性文件的 ...

  2. Python 回调函数的简单实例

    实例一: def func_add(x):return 2+xdef func_cll(x, func):return 1 + func(x)num = 2print(func_cll(num, fu ...

  3. Block、委托、回调函数原理剖析(在Object C语境)——这样讲还不懂,根本不可能!...

    开篇:要想理解Block和委托,最快的方法是搞明白"回调函数"这个概念. 做为初级选手,我们把Block.委托.回调函数,视为同一原理的三种不同名称.也就是说,现在,我们把这三个名 ...

  4. android 回调函数二:应用实例

    前言:如果对android回调的概念不明白的请看:android 回调函数一:基本概念 1.定义接口 package com.app.util;public interface ZYJCallBack ...

  5. 基于MFC相机采集的实现与采集回调函数的应用实例

    整理工程代码的时候发现有一段代码(因为按照调用关系写流程图,这一段没有被写上): //--------------------------------------------------------- ...

  6. 回调函数与PHP实例

    1 什么是回调 软件模块之间总是存在着一定的接口,从调用方式上,可以把他们分为三类:同步调用.回调和异步调用.同步调用是一种阻塞式调用,调用方要等待对方执行完毕才返回,它是一种单向调用:回调是一种双向 ...

  7. Java回调函数理解和应用

    #Java回调函数理解和应用 所谓回调:就是A类中调用B类中的某个方法C,然后B类中反过来调用A类中的方法D,D这个方法就叫回调方法,这样子说你是不是有点晕晕的. 在未理解之前,我也是一脸懵逼,等我理 ...

  8. Keras的回调函数

    训练模型时,很多事情一开始无法预测.尤其是你不知道需要多少轮次才能得到最佳验证损失.通常简单的办法是:训练足够多的轮次,这时模型已经开始过拟合了,根据第一次运行来确定训练所需要的正确轮次,然后使用这个 ...

  9. android 回调函数一:基本概念

    1.概念 客户程序C调用服务程序S中的某个函数A,然后S又在某个时候反过来调用C中的某个函数B,对于C来说,这个B便叫做回调函数. 一般说来,C不会自己调用B,C提供B的目的就是让S来调用它,而且是C ...

最新文章

  1. Java基础篇:反射
  2. SqlServer2000日志文件过大问题处理
  3. libpcap介绍(一)
  4. 美团配送数据治理实践
  5. 营销大数据分析 关键技术_营销分析的3个最关键技能
  6. 国家高性能计算环境的虚拟数据空间运行支撑技术研究
  7. Mysql update 使用join更新字段
  8. ue4蓝图运行顺序_学习UE4,先学蓝图还是c++_资源库
  9. 基于dpdk的用户态协议栈f-stack实现分析
  10. 如何用科研经费报销会务、餐饮、住宿费
  11. 手机app开发(新手教程)
  12. 全市场等权中位数_市场指数估值周报20200412
  13. 电脑壁纸桌面放计算机,电脑壁纸
  14. 解不等式之调和级数不等式
  15. iOS转前端之如何适配不同屏幕尺寸方案
  16. 美业企业如何实现自我蜕变?美业李依然腹有良策
  17. rtx服务器修改登录端口,rtx服务器地址端口设置
  18. 考研高等数学公式(数学一)
  19. html认识时间游戏,认识时间教学设计
  20. 如何确定windows弹出的广告窗口是哪个程序导致并找出来

热门文章

  1. 表情显示服务器异常,MySqlmoji表情引发的存储异常微信昵称
  2. 软件自动升级ftp服务器,国人自己的专业FTP服务器软件(上)
  3. 每天一个linux命令(16):which命令
  4. 【408预推免复习】计算机组成原理之指令系统
  5. 【网页前端设计Front end】HTML语言基础.上(看不懂你来打我)
  6. Android移动开发之【Android实战项目】DAY15-翻页效果原理
  7. dockerfile tomcat 配置jvm参数_Java 从小白到大牛,JVM 不得不知的一些参数和配置
  8. linux+平均磁盘请求数量_SUSE LINUX下磁盘IO性能监测分析
  9. 进阶学习(3.13) Proxy Pattern 代理模式
  10. 深圳网络推广公司介绍几点新网站优化守则!