微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

PHP:奇怪的函数调用函数()()

这可能是一个非常奇怪的问题,但我需要确定它是否真的存在.
我有一个PHP开发人员职位的招聘任务,具有以下任务:

Make a function to sum two numbers a and b but it must be called as sum(a)(b)

我从来没有见过这样的东西,也找不到像上面那样的功能.招聘人员说这不是拼写错误;我糊涂了.

解决方法:

这个赋值要求你理解partial application.基本上,你的sum函数应该返回一个函数,它接受一个参数并从周围的闭包中获取一个参数:

// Javascript
function sum(a) { return function(b) { return a + b  } }
sum(3)(4) // 7

你可以在PHP中做几乎一样的事情:

function sum($a) {
    return function($b) use($a) {
        return $a + $b;
    };
}

但由于PHP不允许连续两次调用,因此您需要一个临时变量:

$add3 = sum(3);
print $add3(4); // 7

这个

 sum(3)(4);

PHP中是不可能的(从5.5开始) – 解析错误.

我很确定你的面试官实际上是指javascript,而不是PHP(注意在作业中缺少$’).

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐