我试着到处寻找这个,或者可能只是无法完成?
所以说我想要一个用于创建其他函数的函数,这些函数具有基于传入参数的新函数名称,这是否可能?
我一直未定义函数。除了currying功能之外,你能用参数命名嵌套函数并返回嵌套函数以便稍后调用(通过参数中给出的名称)吗?
function maker_of_functions($secFuncName, $foo) {
$secFuncName = function($bar) {
$fooBar = $foo + $bar;
}
return $secFuncName();
}
代码调用中的后期:
maker_of_functions('adder', 3);
echo adder(5);
答案 0 :(得分:2)
要创建一个使用父函数参数的新函数,可以使用闭包:
function maker_of_functions($foo) {
// notice the "use" keyword below
return function($bar) use ($foo) {
return $foo + $bar;
};
}
然后使用它:
$adder = maker_of_functions(3);
echo $adder(5);
闭包是一个匿名函数。它没有名字。它存在于(我认为)仅对函数的引用,它包含在变量中。如果需要动态命名变量,可以:
$name = "myNewNamedFunction";
$$name = maker_of_functions(3);
echo $myNewNamedFunction(6);