2016-10-04 6 views
0

я следующий код,Есть ли способ передать переменную в памяти?

\Cache::rememberForever('Roles', function() { 
    return RoleModel 
     ::where('ParentRoleID' >= $CurrenctUserRoleID) 
     ->get(); 
}); 

Выпуск: Я получаю ошибки

Неопределенная переменная: CurrenctUserRoleID

Вопрос: Есть ли способ передать переменную в функции обратного вызова ?

ответ

1

Вы можете попробовать это (Обратите внимание на использование ключевого слова use):

$CurrenctUserRoleID = 1; // Some id 

\Cache::rememberForever('Roles', function() use($CurrenctUserRoleID) { 
    return RoleModel 
    ::where('ParentRoleID' >= $CurrenctUserRoleID) 
    ->get(); 
}); 

Проверьте PHP руководство: Inheriting variables from the parent scope.

1

PHP.net - anonymous functions - Пример # 3

Вы ничего не проходите с обратным вызовом, как вы не вызывающие этим обратный вызова. Вы говорите PHP, чтобы использовать переменную из родительской области.

function (...) use (...) { ... } 
Смежные вопросы