PHP-symfony2-检查是否设置了会话时出错

PHP-symfony2-检查是否设置了会话时出错,php,session,symfony-2.4,Php,Session,Symfony 2.4,问题-我想检查会话是否设置在“控制器”的“\uu构造”中,但我得到以下错误- FatalErrorException:编译错误:无法对函数调用的结果使用isset您可以使用null!==取而代之的是func 以下是我的“\uuu构造”中的代码片段- function __construct() { $request = Request::createFromGlobals(); $session = $request->getSession(); if(!isset($

问题-我想检查会话是否设置在“控制器”的“\uu构造”中,但我得到以下错误-

FatalErrorException:编译错误:无法对函数调用的结果使用isset您可以使用null!==取而代之的是func

以下是我的“\uuu构造”中的代码片段-

function __construct() {

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

}
如果我使用'!=null'而不是'!是的,它给了我一个错误如下-

FatalErrorException:错误:对非对象调用成员函数get

是否有其他方法可以实现这一点

提前感谢。

警告

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

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

// user legit

}


错误消息是相当不言自明的;不能对函数调用的结果使用isset。它甚至还提供了一个备选方案。这个问题似乎离题了,因为错误消息提供了一个解决方案,即使我使用了“=空'它给我的错误,我已经说了上述。有没有其他的替代方法,我可以回答这个问题和第二个问题:为什么要从globals创建$request,而不是将其注入控制器操作方法?如果这是一个合适的控制器,您可以使用$this->get'session',如果我使用第二个代码段-'FatalErrorException:error:Call to member function get on an non object'
if ($this->container->get('session')->isStarted()) {

// user legit

}