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

為什麼我會收到'不在物件上下文中使用 $this”PHP 致命錯誤?

Barbara Streisand
發布: 2024-12-29 04:34:09
原創
971 人瀏覽過

Why Am I Getting a

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

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