2017-10-06 56 views
1

我有一个类,我正在使用$ this,并且从5.6升级到7.1我无法去工作。我很困惑,为什么?请参阅下面的代码示例:

class user_BL extends BLL { 

public function getCurrentUserFromSession($userid) { 
      $userrecord = array(); 

      $query = new query(); 
      $query->addCriteria("userid", $userid , "="); 

      $userrecords = $this->getDataByQueryObj($query, new user_DAL()); 

      if (isset($userrecords[0])){ 
       $userrecord = $userrecords[0]; 
       $lastlogindetails = $this->getLastLoginDetailsAsArray(); 
       $userrecord['logindatetime'] = astlogindetails['logindatetime']; 
      } 

      return $userrecord; 
     } 
} 

getLastLoginDetailsAsArray是BLL基类中的函数。 IDE解释这个好,并看到它可用。

Anyhelp与这将是非常有益的。

感谢,

Deano

编辑:我得到的错误是致命错误:未捕获的错误:用$这个时候不是在对象上下文

忘了补充一点,这是一个漫长昨天的一天。 :)

+5

你得到的错误是什么?你有一个语法错误(可能是编辑代码片段?)'astlogindetails ['logindatetime'];'缺少第一个字符,'$ l' – ishegg

+0

尝试parent :: getLastLoginDetailsAsArray(); – episch

+0

你是否初始化了“__constructor()”,如果你没有设置这个,可能会造成$ this这个问题。 – 2017-10-06 22:36:14

回答

2

挖掘到错误后,我发现呼叫在做这样的:

user_BL::getCurrentUserFromSession(); 

这似乎是这个问题。像这样调用:

$userbl = new user_BL(); 
$userbl->getCurrentUserFromSession(); 

更正此错误。 感谢大家的帮助。

+1

随时将您的答案标记为已接受,以便其他人知道这已得到解决。 –