首頁 > 後端開發 > php教程 > 為什麼我在 PHP 中收到「致命錯誤:不在物件上下文中時使用 $this」?

為什麼我在 PHP 中收到「致命錯誤:不在物件上下文中時使用 $this」?

Barbara Streisand
發布: 2024-12-25 11:02:41
原創
245 人瀏覽過

Why Am I Getting the

在PHP 類別中使用$this

嘗試時出現PHP 錯誤「致命錯誤:不在物件上下文中使用$this」在需要物件的類別方法之外訪問$this關鍵字

說明

在 PHP 中,$this 關鍵字指的是類別方法中的目前物件實例。嘗試在物件上下文之外(例如在靜態方法或全域作用域中)使用 $this 將導致上述錯誤。

範例

提供的程式碼示範錯誤是如何發生的。在class.php中,foobarfunc()方法錯誤地嘗試存取$this->foo(),該方法僅在物件實例內有效。

解決方案

要解決該錯誤,您可以:

  • 將該方法創建為靜態方法:

    static public function foobarfunc() {
      return self::$foo;
    }
    登入後複製

    這允許您使用類別名稱而不是物件實例來存取該方法,例如foob​​ar::foobarfunc().

  • 建立一個物件實例並呼叫該實例的 foobarfunc()方法實例:

    $foobar = new foobar;
    $result = $foobar->foobarfunc();
    登入後複製

記住,靜態方法可以直接存取類別變數和方法,而不需要物件實例,而非靜態方法則需要先建立特定的物件實例.

以上是為什麼我在 PHP 中收到「致命錯誤:不在物件上下文中時使用 $this」?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板