未定义的变量错误 php 即使在设置变量之后
Undefined variable error php even after variable is set
我在 class 中全局定义了一个变量 $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 值
- 现在,当用户单击 "Export" 按钮时,导出功能再次 运行,并设置了会话值。那是变量无法识别的时候。
我只是想为 $userStatus 设置一个默认值,否则,当下拉列表更改时它工作正常。请问我哪里做错了?
你打错了。
由此变化
$this->$userStatus
有了这个:
$this->userStatus
也改这个
if(null !== ($this->f3->get('SESSION.userStatus')))
有了这个:
if(!empty($this->f3->get('SESSION.userStatus')))
我在 class 中全局定义了一个变量 $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 值
- 现在,当用户单击 "Export" 按钮时,导出功能再次 运行,并设置了会话值。那是变量无法识别的时候。
我只是想为 $userStatus 设置一个默认值,否则,当下拉列表更改时它工作正常。请问我哪里做错了?
你打错了。
由此变化
$this->$userStatus
有了这个:
$this->userStatus
也改这个
if(null !== ($this->f3->get('SESSION.userStatus')))
有了这个:
if(!empty($this->f3->get('SESSION.userStatus')))