无法在类实例中访问变量

时间:2015-03-03 10:25:23

标签: php class laravel

我似乎无法在Breadcrumbs实例中访问$ 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 个答案:

答案 0 :(得分:2)

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

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

This answer提供了对整个主题的非常好的解释

答案 1 :(得分: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关键字。