我简单地向您展示代码:
我有这样的功能:
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
在回调中未定义
最佳答案
使用 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
关于php - 将变量传递给嵌套函数调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19282385/