我试着到处找这个,或者可能就是做不到?
假设我想要一个用于创建其他函数的函数,这些函数具有基于传入参数的新函数名,这可能吗
我一直没有定义函数。除了currying功能之外,你能用一个参数命名嵌套函数,并返回稍后调用的嵌套函数(通过你在参数中给它的名称)吗?
function maker_of_functions($secFuncName, $foo) {
$secFuncName = function($bar) {
$fooBar = $foo + $bar;
}
return $secFuncName();
}
稍后的代码调用:
maker_of_functions('adder', 3);
echo adder(5);
使用父函数参数
要创建一个使用父函数params的新函数,可以使用闭包:
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);
其他信息
- 将闭包定义为类中的方法
- 什么是函数"使用"标识符
- Php文档关闭