关于匿名函数和回调函数的区别

关于匿名函数和回调函数的区别

为什么我看完老师的讲解之后感觉就是匿名函数就是回调函数啊

比如

1
2
3
4
function cube($n){
    echo 'n的三次幂是',($n*$n*$n),'<br/>';
}
call_user_func('cube',3);

视频里老师说其中call_user_func('cube',3)里面的cube就是回调函数,3是参数

然后老师又说了上面那个例子的原始形态是

1
2
3
call_user_func(function($n){
    echo 'n的三次幂是',($n*$n*$n),'<br/>';
},3);

这不是就里面的

1
2
3
function($n){
    echo 'n的三次幂是',($n*$n*$n),'<br/>';
},3

是回调函数,那个3就是参数的意思吗   但是这时候那个回调函数不就是个匿名函数吗

请原谅我的智商低,我是真的没搞懂啊

麻烦老师和大佬们帮我解释下到底怎么去理解啊

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

您好,call_user_func()函数把第一个参数作为回调函数调用。

将cube方法作为回调函数传入call_user_func()函数调用,第二个参数为回调函数的数值。

function cube($n){
    echo 'n的三次幂是',($n*$n*$n),'<br/>';
}
call_user_func('cube',3);

原始形态:此时将一个函数作为一个回调函数传入到call_user_func()函数调用,第二个参数为回调函数的数值。

call_user_func(function($n){
    echo 'n的三次幂是',($n*$n*$n),'<br/>';
},3);

此时,原始形态中的函数(下面代码)是一个匿名函数,是作为一个回调函数传入的系统函数。作用等价于封装的cube函数。

function($n){
    echo 'n的三次幂是',($n*$n*$n),'<br/>';
}

如果解决了您的问题,请采纳,祝学习愉快!

  • V丶K 提问者 #1
    非常感谢!
    2017-12-07 20:25:35
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师