PHP回调函数的定义如何理解,应用是什么样的
Admin 2022-08-26 群英技术资讯 925 次浏览
关于“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');
?>输出结果:

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
swoole中绝大部分的模块只能用于CLI命令行环境,只有同步阻塞的swoole_client可以用于php-fpm或apache环境。
这篇文章主要为大家详细介绍了PHP获取学生成绩的方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
今天碰了一个很奇怪的问题,当启动php-fpm后,发现居然访问不到php文件了,后来通过查看日志、分析+搜索终于解决了,现在将整个过程分享给大家,也方便同样遇到这个问题的同学们参考借鉴,下面来一起看看吧。
我们先来分析下规律。设定总金额为10元,有N个人随机领取:N=1第一个则红包金额=X元;N=2第二个为保证第二个红包可以正常发出,第一个红包金额=0.01至9.99之间的某个随机数。第二个红包=10-第一个红包金额;N=3第三个红包1=0.01至9.99之间的某个随机数红包2=0.01至(10-红包1-0.01)的某个随机数红包3=10-红包1-红包2……于是我们得到
在PHP的日常操作中,数组是最常出现的结构,而我们几乎每天都在处理数组相关的内容,这篇文章主要给大家介绍了关于PHP数组迭代器的使用方法,需要的朋友可以参考下
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 ICP核准(ICP备案)粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008