2015-03-03 93 views
1

我似乎无法访问Breadcrumb实例中的$ module。我怎样才能访问它?无法在类实例中访问变量

$modules = Module::all(); 

foreach ($modules as $module) 
{ 
    Breadcrumbs::register($module->name, function($b) 
    { 
     $b->parent('modules'); 
     $b->push($module->display_name, url('/module/' . $module->name)); 
    }); 
} 

回答

2

这是一个可变范围问题。为了能够访问闭包内的局部变量,你必须与use(...)

Breadcrumbs::register($module->name, function($b) use ($module) 
{ 
    $b->parent('modules'); 
    $b->push($module->display_name, url('/module/' . $module->name)); 
}); 

This answer注入他们提供了整个话题

+0

这解决了它。感谢您的回答和解释! – ssangki 2015-03-03 10:44:55

0
$modules = Module::all(); 

foreach ($modules as $module) 
{ 
    Breadcrumbs::register($module->name, function($b) use ($module) 
    { 
     $b->parent('modules'); 
     $b->push($module->display_name, url('/module/' . $module->name)); 
    }); 
} 

因此,use关键字的一个很好的解释。