如何使用父函数参数动态定义嵌套的PHP函数


How to dynamically define a nested PHP function using parent function parameters

我试着到处找这个,或者可能就是做不到?

假设我想要一个用于创建其他函数的函数,这些函数具有基于传入参数的新函数名,这可能吗

我一直没有定义函数。除了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文档关闭