【问题标题】:How to gain access to out of scope variable in php?如何在php中访问超出范围的变量?
【发布时间】:2015-08-04 22:38:23
【问题描述】:

我有一个循环中的函数:

for ($i=1; $i<=10; $i++) {
    Route::get('/projects/oop/'.$i, function(){
        return View::make('projects.oop'. $i); <--- This line give me a problem.
    });
};

我不断得到:

我没有定义。

我将如何解决它,以便我可以访问我的 $i 变量?

【问题讨论】:

标签: php scope counter


【解决方案1】:

这不是在 laravel 中处理动态路由路径的正确方法。

您需要做的是将讨厌的for 循环全部移除,然后您需要将动态值作为第三个参数传递给此路由。

Route::get('/projects/oop/{id}, 'ProjectsController@oop');

现在,您需要进入您的控制器目录并创建一个名为:

class ProjectsController extends BaseController {
    function oop($id){
        return View::make('projects.oop.'.$id);
    }
}

现在您的路由将正确地将请求传递给 ProjectsController 类,然后该类将实现 oop 函数并将 Route 中的 {id} 作为参数传递给函数。

【讨论】:

  • 我认为$id 在您的示例中将始终被“设置”,不是吗?根据我的经验,最好将 $id 保留为没有默认值,然后检查 is_null($is)
  • @JakeWilson 关于这一点您可能完全正确,因为在路由末尾没有 ID,该路由无论如何都不会解析。我将调整我的条件以反映这一点。
猜你喜欢
  • 1970-01-01
  • 2021-03-27
  • 1970-01-01
  • 2013-10-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-30
  • 1970-01-01
相关资源
最近更新 更多