2013-10-09 5 views
1

Просто я покажу вам код:передать переменные вложенный вызов функции

У меня есть функция, как это:

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 не определено в функции обратного вызова

ответ

3

Использование 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

+0

'$ ln' не Проб. '$ vf' is –

+0

Извините, непонятый, обновленный ответ. –

+0

Спасибо вам большое –

Смежные вопросы