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

时间:2016-08-02 20:26:38

标签: php function callback closures anonymous-function

我试着到处寻找这个,或者可能只是无法完成?

所以说我想要一个用于创建其他函数的函数,这些函数具有基于传入参数的新函数名称,这是否可能?

我一直未定义函数。除了currying功能之外,你能用参数命名嵌套函数并返回嵌套函数以便稍后调用(通过参数中给出的名称)吗?

function maker_of_functions($secFuncName, $foo) { 
    $secFuncName = function($bar) { 
        $fooBar = $foo + $bar;
    }
    return $secFuncName();
}

代码调用中的后期:

maker_of_functions('adder', 3);
echo adder(5);

1 个答案:

答案 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);

其他信息