我正在使用slimphp框架,并且对我的路由函数的变量范围感到困惑。我有以下几点:
$app = new \Slim\Slim(array(
'templates.path' => '../templates/',
'view' => new Slim\Extras\Views\Twig()
));
$user = SES\Session::getInstance();
include 'routes.php';
$app->run();
//Routes.php
$app->get("/", function() use ($app, $user){
....
}
如果不将global $user;
添加到顶部,Routes.php
将失败:
Notice: Undefined variable: user
为什么我可以从此文件访问$app
变量,但不能访问$user
变量?
发布于 2013-02-23 02:45:48
我已经缩小了问题的范围。我实际上并没有调用include 'routes.php';我有一个实用函数来加载文件夹中的所有路由。我在我的引导程序中调用了这个函数:SES\Util::loadRoutes(‘../$filename’);这是一个静态函数,它读取一个目录并为每个文件执行一个require $filename;。我必须在过去处理过这个问题,因为在这个函数中,我声明了全局$app;Sooo..我仍然不能完全理解什么时候需要调用global,但这解决了一部分困惑!
https://stackoverflow.com/questions/14946352
复制相似问题