PHP使用Variable Scope

时间:2013-02-18 22:20:19

标签: php variables global-variables slim

我正在使用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?

1 个答案:

答案 0 :(得分:1)

我已经缩小了问题范围。我实际上并没有调用include'路线.php';我有一个实用程序函数,可以加载文件夹中的所有路径。我在我的引导程序中调用它:SES \ Util :: loadRoutes('../ routes');这是一个静态函数,它读取一个dir并执行一个require $ filename;对于每个文件。我必须在过去处理过这个问题,因为在这个函数中我声明了全局$ app; Sooo ..当我需要调用全局时,我仍然不完全理解,但这解决了部分混乱!