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」。 –