函数式编程 - 具有所有参数的调用函数

Arn*_*Ncy 7 php parameters functional-programming

我实际上是在试验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);
Run Code Online (Sandbox Code Playgroud)

有没有办法用所有参数调用加法函数?我试着用这种方式没有机会:

echo addition(2)(3);
Run Code Online (Sandbox Code Playgroud)

Ora*_*ill 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);
Run Code Online (Sandbox Code Playgroud)

echo addition(2)(3);目前提出的语法不起作用,但是当php 7到达时它会.对于当前版本的php,您可以使用call_user_func来执行您想要的操作.

echo call_user_func(addition(2), 3);
Run Code Online (Sandbox Code Playgroud)