PHP 致命錯誤:不在物件上下文中使用$this
問題:
當
問題:當
當嘗試在PHP 中的類別的非靜態方法中存取$this 變數時,會出現以下錯誤: 「不在物件上下文中使用 $this。」答案:
嘗試在物件實例外部存取 $this 變數時會出現此錯誤。 $this 變數引用目前對象,只能在實例化物件的上下文中使用。$object = new MyClass(); $object->myMethod();解決方案:
MyClass::staticMethod();要解決此錯誤,請實例化下列物件類別並透過物件實例存取方法。例如:
或者,如果方法是靜態的,則可以直接使用類別名稱存取它,而無需實例化物件:
$foobar = new foobar(); $foobar->foobarfunc();範例:
class foobar { public static $foo; public static function foobarfunc() { return self::$foo; } } foobar::foobarfunc();在您的class.php 檔案中,確保foobarfunc() 方法未定義為靜態方法。如果它不是靜態的,則必須在存取方法之前實例化foobar 類別的物件:如果您打算建立靜態方法,請確保該方法被宣告為靜態,並且$ foo 變數被聲明為靜態:
以上是為什麼我會收到'不在物件上下文中使用 $this”PHP 致命錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!