如何在PHP的闭包中插入变量?

时间:2017-01-26 10:51:56

标签: php

function updateParameters($landing)
{
    $addValue = function ($final,$parametername,$value)
    {
        $value1=str_replace (  '{landing}' ,  $landing ,$value );
        $_GET[$parametername]=$value1;
        return "";
    };

    doSomethingWith20Params($addValue, "")  ;
}

基本上,$addValue是一个功能。参数号无法更改。这是因为doSomethingWith20Params ($addValue, "");需要一个带有3个参数的函数。

在PHP中我得到了

5   446.6299    486504  doSomethingWith20Params( ???, ???, ??? )    ...\cutoolsgeneral.php:204
6   552.2776    487112  {closure:H:\business\shared\Dropbox\htdocs\tools2\cutoolsgeneral.php:197-202}( ???, ???, ??? )  ...\cutoolsgeneral.php:188

1 个答案:

答案 0 :(得分:4)

只需使用use关键字将vars绑定到您的闭包

function updateParameters($landing)
{
    $addValue = function ($final,$parametername,$value) use ($landing)
    {
        $value1=str_replace (  '{landing}' ,  $landing ,$value );
        $_GET[$parametername]=$value1;
        return "";
    };

    doSomethingWith20Params($addValue, "")  ;
}