将变量传递给嵌套函数调用

时间:2013-10-09 20:48:21

标签: php pass-by-reference

我只是告诉你代码:

我的功能如下:

function eachLang($callback){
    global $langs;
    foreach($langs as $ln=>$lnnm){
        call_user_func($callback,$ln);
    }
}

接下来我就是这样的:

$vf = new ValidFluent($_POST);
eachLang(function($ln){
    $vf->name('title_'.$ln)->required()->maxSize(100);
});

如何轻松地将$vf对象传递给回调函数?

我的意思是这种方式$vf在回调中未定义

1 个答案:

答案 0 :(得分:4)

在回调函数中使用use来传递变量。在变量名称前添加&以通过引用传递:

$vf = new ValidFluent($_POST);
eachLang(function($ln) use (&$vf) {
    $vf->name('title_'.$ln)->required()->maxSize(100);
});

有关匿名函数和use的更多信息,请点击此处: http://php.net/manual/en/functions.anonymous.php