创建对匿名对象的静态引用

时间:2018-10-10 08:57:40

标签: php scope anonymous-class anonymous-objects

我正在创建一个匿名对象,如下所示:

$factory    =   (object) [ 'router' => new AltoRouter(), 'user' => null ];

然后我像这样加载用户:

if( !empty( $_SESSION['usid'] ) )
        $factory->user = ( new UserController() )->loadUserBySession( $_SESSION['usid'] );

但是,AltoRouter使用函数来动态映射URI,而这样的示例是:

$factory->router->map('GET|POST', '/pretty/url', function() {
    echo 'But this cannot access the $factory->user object to get the current user.';
});

我知道我可以将function()更改为function() use ($factory),但是可以在有权访问$factory范围之外激活一条路由。我想实现以下目标:

class Factory {
    public static $user;
}

$factory->router->map('GET|POST', '/pretty/url', function() {
    Factory::$user->doSomething();
});

但是使用匿名对象。

0 个答案:

没有答案