call_user_func的主要用途是什么,如何使用
今天小编跟大家讲解下有关“call_user_func的主要用途是什么,如何使用”的内容 ,相信小伙伴们对这个话题应该有所关注吧,小编也收集到了相关资料,希望小伙伴们看了有所帮助。
3. 类似的call_user_func_array
关于“call_user_func的主要用途是什么,如何使用”就介绍到这了,如果大家觉得不错可以参考了解看看,如果想要了解更多,欢迎关注博信,小编每天都会为大家更新不同的知识。
call_user_func
官方的解释是:把第一个参数作为回调函数(callback
),并且将其余的参数作为回调函数的参数。
第一个参数可以是函数名,后面的均为作为该函数使用的参数。
1. call_user_func的初步使用
看例子:
// 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
2. call_user_func用于递归函数中
著名的斐波那契函数,如果哪天我们改变了函数名即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__ 魔法常量。
3. 类似的call_user_func_array
该函数接收两个参数,第一个参数不变,函数名,第二个是参数数组。
$func = function($arg1, $arg2) { return $arg1 * $arg2; }; var_dump(call_user_func_array($func, array(2, 4)));
其实call_user_func 函数在事件处理中有起到非常重要的作用。
关于“call_user_func的主要用途是什么,如何使用”就介绍到这了,如果大家觉得不错可以参考了解看看,如果想要了解更多,欢迎关注博信,小编每天都会为大家更新不同的知识。
版权声明
本文仅代表作者观点,不代表博信信息网立场。