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

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

Barbara Streisand
Barbara Streisand原創
2024-12-25 11:02:41248瀏覽

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn