PHP - symfony2 - 检查Session是否设置时出错

时间:2014-06-27 05:17:12

标签: php session symfony-2.4

问题 - 我想在'Controller'的'__construct'中检查会话是否已设置,但是我收到以下错误 -

  

FatalErrorException:编译错误:无法对函数调用的结果使用isset()(可以使用“null!== func()”代替)

以下是我的'__construct' -

中的代码段
function __construct() {

   $request = Request::createFromGlobals();
   $session = $request->getSession();
   if(!isset($session->get('id'))){
     $this->redirect('UserAuthBundle:Auth:login.html.twig');
   }

}

如果我使用'!= null'而不是'!isset',则会给我一个错误,如下所示 -

  

FatalErrorException:错误:在非对象上调用成员函数get()

是否有其他替代方式可以实现。

提前致谢。

2 个答案:

答案 0 :(得分:1)

Manual says

警告

isset()仅适用于变量,因为传递任何其他内容都会导致解析错误。要检查是否设置了常量,请使用defined()函数。

答案 1 :(得分:-1)

if ($session->get("token") == $token) {

// user legit

}

if ($this->container->get('session')->isStarted()) {

// user legit

}