首頁 > 後端開發 > php教程 > 如何修復「嚴格標準:不應靜態呼叫非靜態方法」PHP 錯誤?

如何修復「嚴格標準:不應靜態呼叫非靜態方法」PHP 錯誤?

DDD
發布: 2024-11-27 05:32:10
原創
921 人瀏覽過

How to Fix the

解決PHP 中的「嚴格標準:不應靜態呼叫非靜態方法」錯誤

錯誤訊息「嚴格標準:不應靜態呼叫非靜態方法」當使用靜態呼叫存取非靜態方法時,會發生「靜態呼叫」。為了解決這個錯誤,我們將修改程式碼,以確保所有需要靜態呼叫的方法都宣告為靜態。

在提供的程式碼中,Page 類別中的方法沒有宣告為靜態,而是它們被稱為靜態的。要解決這個問題,我們需要在方法聲明中加入 static 關鍵字。

修改 Page.php

class Page{
    // ...
    public static function getInstanceByName($name=''){
        // ...
    }
    // ...
}
登入後複製

透過將這些方法設為靜態,他們可以使用類別名稱進行訪問,如index.php文件所示:

// ...
if($page){ // load by name
    $r = Page::getInstanceByName($page);
    if($r && isset($r->id)) $id = $r->id;
}
// ...
登入後複製

其他注意

  • 靜態方法和單例模式可能會阻礙單元測試。
  • 建構子應該主要專注於將物件設為有效狀態,而不是執行大量查詢。
  • 建構子不能回傳值;它們總是回傳 void。

以上是如何修復「嚴格標準:不應靜態呼叫非靜態方法」PHP 錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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