call_user_func_array 调用回调函数
先看一下C语言里的回调函数:回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数。回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进行响应。
其他语言里的回调函数的概念与之相似,只不过各种语言里回调函数的实现机制不一样,通俗的来说,回调函数是一个我们定义的函数,但是不是我们直接来调用,而是通过另一个函数来调用,这个函数通过接收回调函数的名字和参数来实现对它的调用。
call_user_func_array — 调用回调函数,并把一个数组参数作为回调函数的参数mixed call_user_func_array ( callable $callback , array $param_arr )把第一个参数作为回调函数(callback)调用,把参数数组作(param_arr)为回调函数的的参数传入。返回回调函数的结果。如果出错的话就返回FALSE
这个函数存在的最大意义:
把回调函数写成了参数,参数就意味着可以是一个变量,而在程序中如果回调函数是变量那么这个函数名可以根据程序来实时控制从而把参数传递给不同的回调函数数
实例:
function sayEnglish($fName, $content) { echo 'I am ' . $content;
} function sayChinese($fName, $content, $country) { echo $content . $country; echo "<br>";
} function say() { $args = func_get_args(); call_user_func_array($args[0], $args);
} say('sayChinese', '我是', '中国人');
say('sayEnglish', 'Chinese');//这里指的是非客户端php脚本
function sum($first,$second){$args = func_get_args(); //获取列表 //func_get_arg($index) 则获取指定的位置的参数$len = func_num_args(); //获取长度$sum = 0 ; foreach($args as $key=>$val){$sum += (int) $val; }return $sum;
}
$rs = sum(1,2,3,4,5);
var_dump($rs); // int 15
//注意: 在sum函数中修改了$first,$second的变量,同时又不是引用对象 变量的话,则不会修改
call_user_func_array 调用回调函数相关推荐
- Simulink-模块Moudle调用回调函数步骤
一.模块Moudle调用回调函数位置 软件版本:R2021a 在simulink创建module后,单击右键,选择下图中的"Module Properties". 选择弹出界面的 ...
- PHP中call user func()和call_user_func_array()调用自定义函数小结
call_user_func() 和 call_user_func_array(),通过传入字符串函数,可以调用自定义函数,并且支持引用,都允许用户调用自定义函数并传入一定的参数: 1.mixed c ...
- js如何取到ajax回调函数值,js怎样获取调用回调函数的参数值
代码如下: function a(callback){ alert('a'); callback.call(this);//或者是 callback(), callback.apply(this),看 ...
- js中for循环调用回调函数,一直循环最后一个
js的for循环中使用回调函数,获取到的值总是最后一个值?_MLAY-CSDN博客_js 循环回调函数
- 使用jquery ajax调用后台方法 有时候不调用回调函数
今天在编辑修改页面时遇到了一个很尴尬的问题,浪费了好多时间,问题描述: 使用jquery ajax调用后台方法,正确时弹出提示框,并且跳转到list列表页面.然而,写好了之后有时候会不跳转,直接刷新一 ...
- PHP - 回调函数概念与用法实例分析 - 学习/实践
1.应用场景 主要用于理解回调函数的概念, 对比JavaScript中的回调函数, 更加深刻理解回调函数的本质, 以及如何高效使用~~~ 2.学习/操作 1. 文档阅读 https://www.jb5 ...
- php回调函数的作用域,PHP将回调函数作用到给定数组单元的方法
PHP将回调函数作用到给定数组单元的方法 数组是PHP程序设计中十分重要的一环.本文介绍PHP中数组函数array_map()的用法,实现将回调函数作用到给定数组单元上.具体如下: array arr ...
- C#调用C/C++ DLL 参数传递和回调函数的总结
原文:C#调用C/C++ DLL 参数传递和回调函数的总结 Int型传入: Dll端: extern "C" __declspec(dllexport) int Add(int a ...
- python apply_async函数_Python-未调用apply_async回调函数
我是python的新手,我具有为数据计算特征然后返回要处理并写入文件的列表的功能-我正在使用Pool进行计算,然后使用回调函数来写入文件,但是没有调用回调函数,我已经在其中添加了一些print语句,但 ...
- 回调函数 —— 借助中间通用函数(形参里有函数指针,实现函数注册)调用不同的回调函数 (多态/分层)
回调函数传参:函数指针做函数参数(回调函数) 目录 背景 回调函数是实现函数分层且单向依赖的好办法,使用函数指针运行 struct结构体回调函数代码更清晰 简单理解回调函数 Demo 其他回调函数博文 ...
最新文章
- 某企业WSUS服务实例介绍
- 软件工程综合实践阶段小结(2)
- 【OpenCV3】Opencv3.2.0在Hisi3521下的交叉编译和移植
- python中的几种copy用法_Python3中copy模块常用功能及其他几种copy方式比较
- EJS学习(一)之特性、安装、工作原理
- 百度开源的分布式唯一ID生成器UidGenerator,解决了时钟回拨问题
- django 别名与命名空间 reverse反转得到路径
- 基于人人网的Android开发流程介绍
- linux订阅软件包,安装 Manjaro Linux 后必做的 6 件事 | Linux 中国
- Log4j2 高危漏洞分析
- VMware下安装ubuntu,桥接上网配置静态IP
- [jQuery]20+ Brilliant and Advanced jQuery Effects
- MAB多臂老虎机/赌博机
- WhereHows 安装
- 用POP3获取邮箱邮件内容(完整C#源码)
- python 使用PIL 写入像素点画图片
- 企业信息化建设都包括哪些方面?
- Jetson AGX Orin刷机教程,奶奶看完都说会了!
- 结绳编程【简单计算】
- 计算机网络(第八版 谢希仁著)(上)
热门文章
- 博弈论——Nim游戏
- A1075[PAT JUDGE] 好题
- python数据分析:Numpy
- 学计算机 数学日记,数学日记3篇
- easyui 提示框组件_jQuery EasyUI 教程-Tooltip(提示框)
- python消息模块_python - psutil 系统信息模块
- 【2019CCPC秦皇岛:A】Angle Beats(离线+斜率Hash+分类讨论)
- 翻译: 4.4. 模型选择Model Selection、欠拟合Underfitting和过拟合Overfitting pytorch
- 在线图片压缩png 和 gif,docsmall.com
- mysql驱动是什么文件_Oracle数据库11g JDBC驱动程序 – 这么多文件?他们的意思是什么?...