4

我简单地向您展示代码:

我有这样的功能:

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在回调中是未定义的

4

1 回答 1

9

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

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

有关匿名函数的更多信息,请参见:http use: //php.net/manual/en/functions.anonymous.php

于 2013-10-09T20:50:19.380 回答