函数式编程 - 使用所有参数调用函数

functional programming - call function with all parameters

我实际上是在 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);

你很接近。 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);