錯誤訊息「嚴格標準:不應靜態呼叫非靜態方法」當使用靜態呼叫存取非靜態方法時,會發生「靜態呼叫」。為了解決這個錯誤,我們將修改程式碼,以確保所有需要靜態呼叫的方法都宣告為靜態。
在提供的程式碼中,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; } // ...
其他注意
以上是如何修復「嚴格標準:不應靜態呼叫非靜態方法」PHP 錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!