函数式编程 - 使用所有参数调用函数
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);
我实际上是在 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);