PHP回调函数怎样使用(实例详解)
PHP回调函数
回调函数,一种可以配合匿名函数和变量函数而实现更多功能的函数结构。
什么是回调函数?
PHP中所讲的回调函数,其实就是指调用函数时不是向函数中传递标准的变量作为参数,而是将另一个函数作为参数,传递到调用的函数中,回调函数也就是这个作为参数的函数。
可以理解为,回调函数也是我们定义的一个函数,但是它并不是直接调用的,而是需要另一个函数来调用。
示例如下:
<?php function arithmetic($a, $b, $c) { return $a($b, $c); } function add($b,$c){ return $b+$c; } $d = arithmetic('add', 5, 9); echo '5 + 9 ='.$d; ?>
输出结果:
另外,PHP 提供了两个函数 call_user_func()
和 call_user_func_array()
来对回调函数进行支持。
这两个函数的区别是: call_user_func_array() 是以数组的形式接收回调函数的参数,而 call_user_func() 则是以具体的参数来接收回调函数参数的。
call_user_func_array()
call_user_func_array 函数可以调用回调函数,然后使用一个数组来作为回调函数的参数。语法格式如下:
call_user_func_array ($callback ,$param_arr)
在语法格式中,$callback 是被调用的回调函数,$param_arr 是一个索引数组,下面举个例子实际看一下:
<?php function arithmetic($f, $m, $n) { return call_user_func_array($f, array($m, $n)); } function add($m,$n){ return $m+$n; } $sum = arithmetic('add', 3, 4); echo '3 + 4 ='.$sum; ?>
输出结果:
call_user_func()
call_user_func 函数会把第一个参数作为回调函数来调用,语法格式如下:
call_user_func ($callback [, $parameter, ... ])
其中, $callback 是被调用的回调函数,其余参数是回调函数的参数,多个参数之间使用",
"分隔。下面举个例子实际看一下:
<?php function arithmetic($f, $m, $n) { return call_user_func($f, $m, $n); } function add($m,$n){ return $m+$n; } $sum = arithmetic('add', 250, 250); echo '250 + 250 ='.$sum; ?>
输出结果:
接下来给大家分享一下变量函数和回调函数结合的一个示例:
<?php function woziji($one,$two,$func){ //我规定:检查$func是否是函数,如果不是函数停止执行本段代码,返回false if(!is_callable($func)){ return false; } //我把$one、$two相加,再把$one和$two传入$func这个函数中处理一次 //$func是一个变量函数,参见变量函数这一章 echo $one + $two + $func($one,$two); } //我们定义几个函数试试 function plusx2( $foo , $bar){ $result = ($foo+$bar)*2; return $result; } function jian( $x , $y ){ $result = $x - $y; return $result; } //调用一下函数,woziji,向里面传入参数试试 echo woziji(20,10,'plusx2'); //将plusx2改成jian试试结果 echo woziji(20,10,'jian'); ?>
输出结果:
推荐学习:《PHP视频教程》
-
Linux常用命令awk的用法 grep、awk、sed三者的区别 时间:2025-09-09
-
C++中命名空间的定义、使用、作用、类型、和类的区别 时间:2025-09-09
-
batchplot插件用法 batchplot插件安装教程 时间:2025-09-09
-
%s在c语言中含义和用法 %s和其他格式化符号的区别 时间:2025-09-09
-
%s在python中含义和用法 %s和其他格式化符号的区别 时间:2025-09-09
-
计算机MAR代表什么 MAR和MDR的区别 时间:2025-09-09
今日更新
-
瞳孔地震是什么梗?揭秘网络热词背后的爆笑瞬间!
阅读:18
-
统一六国的梗是什么梗?揭秘秦始皇爆笑网络热梗背后的真相!
阅读:18
-
捅西瓜梗是网络流行语,源自搞笑视频中夸张捅西瓜动作,暗指用极端方式解决问题,幽默又带讽刺意味。
阅读:18
-
怪兽八号手游核爆配队详解-适用所有主C
阅读:18
-
逆水寒手游十月版本前瞻-航母联动特色逆水杀曝光
阅读:18
-
女神异闻录:夜幕魅影P5X-片山久未技能简读搭配推荐
阅读:18
-
时空绘旅人幕叙心事活动预告-可获得罗夏CR独白等奖励
阅读:18
-
桶是什么梗?揭秘网络热词桶的搞笑来源和流行用法,看完秒懂!
阅读:18
-
CF手游MK5哪吒怎么样-MK5哪吒武器前瞻
阅读:18
-
恋与深空限定喵呜币额外掉落-秋游喵喵系列徽章上新
阅读:18