设置变量后,未定义的变量错误php

时间:2017-11-07 03:57:26

标签: php session fat-free-framework

我在一个类中全局定义了一个变量$ userStatus,并且[在下拉列表中选择了一个选项时]将覆盖该值。该变量被更改下拉列表时设置的会话值覆盖。 如果未设置会话,则该函数正常工作..但是当更改下拉列表并设置会话时,将显示未定义变量$ userStatus。 这是我试过的:

protected $userStatus = 1;

public function export($f3, $params)
{
    if(null !== ($this->f3->get('SESSION.userStatus')))
    {
        $this->$userStatus =  $this->f3->get('SESSION.userStatus');
    }
    $rowID = 5;
    foreach ($results as $result) 
       {
          if($this->userStatus == 2)
             {
                //logic
             }
          else{ //.... }
          $rowID++;
       }
}

以下是使用ajax设置会话的方法:

public function updateUserStatus($f3)
    {
        $status = $this->f3->get('POST.status');
        $this->f3->set('SESSION.userStatus', $status);
        echo $status;
    }

注意:

  • 使用默认的$ userStatus值运行导出功能。
  • 当值改变时,会话被设置并且$ userStatus值应该被覆盖
  • 现在当用户单击“导出”按钮时,再次运行导出功能,并设置会话值。这是变量无法识别的时候。

我只是想为$ userStatus设置一个默认值,否则,当下拉列表发生变化时它正常工作。请问我在哪里做错了?

1 个答案:

答案 0 :(得分:3)

你有一个错字。

从此更改

$this->$userStatus

有了这个:

$this->userStatus

同时更改此

if(null !== ($this->f3->get('SESSION.userStatus')))

有了这个:

if(!empty($this->f3->get('SESSION.userStatus')))