我正在使用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){
....
}
如果我没有将Routes.php
添加到顶部,则 global $user;
会失败:
Notice: Undefined variable: user
为什么我可以从此文件访问$app
var但我无法访问$user
var?
答案 0 :(得分:1)
我已经缩小了问题范围。我实际上并没有调用include'路线.php';我有一个实用程序函数,可以加载文件夹中的所有路径。我在我的引导程序中调用它:SES \ Util :: loadRoutes('../ routes');这是一个静态函数,它读取一个dir并执行一个require $ filename;对于每个文件。我必须在过去处理过这个问题,因为在这个函数中我声明了全局$ app; Sooo ..当我需要调用全局时,我仍然不完全理解,但这解决了部分混乱!