3
这可能是一个很奇怪的问题,但我需要确定它是否真的存在与否。 我已经得到了具有以下任务PHP开发人员位置招聘任务:PHP:奇怪的函数调用函数()()
做一个功能到总和两个数字一个和b但它必须被称为总和(a)(b)
我从来没有见过类似的东西,找不到类似上述功能的任何东西。招聘人员表示,这不是一个错字;我很困惑。
这可能是一个很奇怪的问题,但我需要确定它是否真的存在与否。 我已经得到了具有以下任务PHP开发人员位置招聘任务:PHP:奇怪的函数调用函数()()
做一个功能到总和两个数字一个和b但它必须被称为总和(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没有按“T允许在连续两个电话,你需要一个临时变量:
$add3 = sum(3);
print $add3(4); // 7
这
sum(3)(4);
是不可能的在PHP(5.5)和解析错误。
我很确定你的面试官实际上是指JavaScript,而不是PHP(注意在作业中缺少$
)。
不确定PHP,但是在JavaScript中很容易。它只是意味着'sum'函数带有一个参数,并返回一个函数,它本身就具有参数。 PHP可以像JavaScript那样返回函数吗? – David
正确答案是:“PHP不是Javascript”。 –