簡體   English   中英

設置變量后,未定義的變量錯誤php

[英]Undefined variable error php even after variable is set

我在一個類中全局定義了一個變量$ 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設置一個默認值,否則,當下拉列表發生變化時它正常工作。 請問我在哪里做錯了?

你有一個錯字。

改變這一點

$this->$userStatus

有了這個:

$this->userStatus

也改變這個

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

有了這個:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM