call_user_func的主要用途是什么,如何使用
Admin 2022-08-16 群英技术资讯 885 次浏览
今天小编跟大家讲解下有关“call_user_func的主要用途是什么,如何使用”的内容 ,相信小伙伴们对这个话题应该有所关注吧,小编也收集到了相关资料,希望小伙伴们看了有所帮助。官方的解释是:把第一个参数作为回调函数(callback),并且将其余的参数作为回调函数的参数。
第一个参数可以是函数名,后面的均为作为该函数使用的参数。
看例子:
// 1. 初步使用 function sayHi($name){ echo $name .' say hi' ."<br>"; } call_user_func('sayHi','Bob'); call_user_func('sayHi','Jack');
输出:
Bob say hi
Jack say hi
著名的斐波那契函数,如果哪天我们改变了函数名即Factorial,那么该函数会报错,因为内部也使用到了Factorial。
function Factorial($i=1) { return ($i==1 ? 1 : $i*Factorial($i-1)); }
改进一下:
function FactorialImprove($i=1){ return ($i == 1 ? 1 : $i * call_user_func(__FUNCTION__,$i-1)); }
这样的话如果外部函数名怎么变都不会出错。这里用到了PHP中的 __FUNCTION__ 魔法常量。
该函数接收两个参数,第一个参数不变,函数名,第二个是参数数组。
$func = function($arg1, $arg2) { return $arg1 * $arg2; }; var_dump(call_user_func_array($func, array(2, 4)));
其实 call_user_func 函数在事件处理中有起到非常重要的作用。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
许多人在学习C语言的时候都写过一些有趣的算法,其实这些算法在PHP中也同样可以实现,甚至有些算法的代码比C语言中还要简洁,需要的朋友可以参考下
协程“协程”就是用户态的线程要理解是什么是“用户态的线程”,必然就要先理解什么是“内核态的线程”。内核态的线程是由操作系统来进行调度的,在切换线程上下文时,要先保存上一个线程的上下文,然后执行下一个线程,当条件满足时,切换回上一个线程,并恢复上下文。协程也是如此,只不过,用户态的线程不是由操作系统来调度的,而是由程序员来调度的,是在用户态的--摘自链接描述关于“用户态线程”,我们
这篇文章主要介绍PHP中json_encode与json_decode的区别是什么?首先我们先简单了解一下JSON,JSON是一种轻量级的数据交换格式。json_encode()是将数据转为json格式,json_decode()是对json格式的字符串进行解码,并转换为PHP变量。
在本篇文章里小编给大家分享的是一篇关于php7 没有phpize的解决方法及相关问题总结,有需要的朋友们可以跟着学习下。
laravel admin实现分类树/模型树的示例代码?有不少朋友对于这个比较感兴趣,下面小编给大家整理和分享了相关知识和资料,易于大家学习和理解,有需要的朋友可以借鉴参考,下面我们一起来了解一下吧。
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
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