call_user_func的主要用途是什么,如何使用
Admin 2022-08-16 群英技术资讯 514 次浏览
官方的解释是:把第一个参数作为回调函数(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进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
swooleWorker以多进程的方式运行,master-> n * worker的模式,开启的worker进程数越多,server负载能力越大,但是相应的server占有的内存也会更多。
这篇文章主要给大家介绍了关于PHP中信息格式化操作的相关资料,主要运用的是专门用于信息格式化的MessageFormatter类,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
这篇文章主要介绍了PHP设计模式之单例模式入门与应用,结合实例形式详细分析了PHP单例模式的具体概念、原理、使用方法及相关操作注意事项,需要的朋友可以参考下
在thinkphp中,D方法可以返回实例化的模型对象。D方法用于实例化自定义模型类,是ThinkPHP框架对Model类实例化的一种封装,语法“D('[项目://][分组/]模型','模型层名称')”,返回值为实例化的模型对象。
本页说明了用static关键字来定义静态方法和属性。static也可用于定义静态变量以及后期静态绑定。声明类属性或方法为静态,就可以不实例化类而直接访问。静态属性不能通...
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008