PHP回调函数的定义如何理解,应用是什么样的
Admin 2022-08-26 群英技术资讯 479 次浏览
回调函数,一种可以配合匿名函数和变量函数而实现更多功能的函数结构。
什么是回调函数?
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'); ?>
输出结果:
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
如何实现php随机发扑克牌?扑克牌属于经典游戏之一,我们知道每次发放扑克牌都是随机的,那么用PHP代码要怎么实现这个效果呢?下面就分享一个PHP实现的简易随机发扑克牌代码,感兴趣的朋友可以看一下。
本文实例讲述了PHP正则表达式函数preg_replace用法,有不少朋友对此感兴趣,下面小编给大家整理和分享了相关知识和资料,易于大家学习和理解,有需要的朋友可以借鉴参考
重构代码是构建和维护软件的重要方面,重构涵盖了一系列不同的技术,包括移动,提取,复制,删除和重命名。PhpStorm的重构功能(包含在核心软件包中)支持所有这些功能。
在本篇文章里小编给大家分享了关于php实现多线程的相关知识点以及实例内容,以后兴趣的朋友们学习下。
学习PHP过程中,对于一些基本的排序算法大家还是需要掌握的,算法作为程序的核心,其好坏会影响到程序的质量,因此这篇文章就给大家介绍一些PHP常用排序算法的方法,文本还有PHP的实现代码,供大家参考,下面我们就来一起看看。
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008