我实际上在php中尝试函数式编程。我想对一些函数调用有一些准确性。
作为一个例子:
function addition($num1){
return function ($num2) use ($num1){
return $num1+$num2;
}
}
$add_2_to = addition(2);
echo $add_2_to(3);
echo $add_2_to(4);
有没有办法用所有参数调用加法函数? 我没有机会尝试过这种方式:
echo addition(2)(3);
答案 0 :(得分:7)
你非常接近。 PHP没有词法范围,因此变量$ num1在返回的函数中不可用...因为你必须使用use
显式导入它
function addition($num1){
return function ($num2) use ($num1){
return $num1*$num2;
};
}
$add_2_to = addition(2);
echo $add_2_to(3);
echo $add_2_to(4);
你提出的语法echo addition(2)(3);
目前不起作用,但是当php 7到达时它会。对于当前版本的php,您可以使用call_user_func来执行您想要的操作。
echo call_user_func(addition(2), 3);