在PHP 類別中使用$this
嘗試時出現PHP 錯誤「致命錯誤:不在物件上下文中使用$this」在需要物件的類別方法之外訪問$this關鍵字
說明
在 PHP 中,$this 關鍵字指的是類別方法中的目前物件實例。嘗試在物件上下文之外(例如在靜態方法或全域作用域中)使用 $this 將導致上述錯誤。
範例
提供的程式碼示範錯誤是如何發生的。在class.php中,foobarfunc()方法錯誤地嘗試存取$this->foo(),該方法僅在物件實例內有效。
解決方案
要解決該錯誤,您可以:
將該方法創建為靜態方法:
static public function foobarfunc() { return self::$foo; }
這允許您使用類別名稱而不是物件實例來存取該方法,例如foobar::foobarfunc().
建立一個物件實例並呼叫該實例的 foobarfunc()方法實例:
$foobar = new foobar; $result = $foobar->foobarfunc();
記住,靜態方法可以直接存取類別變數和方法,而不需要物件實例,而非靜態方法則需要先建立特定的物件實例.
以上是為什麼我在 PHP 中收到「致命錯誤:不在物件上下文中時使用 $this」?的詳細內容。更多資訊請關注PHP中文網其他相關文章!