首頁 > 後端開發 > php教程 > 如何修復 PHP「靜態非靜態方法呼叫」錯誤?

如何修復 PHP「靜態非靜態方法呼叫」錯誤?

Susan Sarandon
發布: 2024-12-14 20:17:26
原創
108 人瀏覽過

How to Fix the PHP

錯誤:靜態非靜態方法呼叫

當嘗試將非靜態方法作為靜態函數存取時,PHP 會產生錯誤訊息嚴格標準:非靜態方法不應該被靜態調用。當在沒有先實例化類別的物件的情況下使用類別方法時,通常會出現此問題。

解決方案:

1.指定類別物件:
要解決此問題,您需要在嘗試呼叫其方法之前建立該類別的實例。例如,不要使用:

,而是使用:

2。將方法標記為靜態:
如果您打算在不實例化類別的情況下呼叫方法,則可以在類別中將該方法定義為靜態。例如:

這允許您直接使用類別名稱呼叫方法:

其他注意事項:

1.可測試性:
請注意,靜態方法和單例可能會阻礙可測試性。您可能需要考慮替代設計模式來提高測試能力。

2.建構函式最佳化:
避免在建構函式中放置過多的任務。建構函數應該只處理將物件設定為有效狀態。考慮注入資料依賴項,而不是直接從建構函數中取得它們。請記住,建構函式不能傳回值,並且始終傳回 void。

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

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