首頁 > 後端開發 > php教程 > 為什麼我在 PHP 中收到「嚴格標準:不應靜態呼叫非靜態方法」?

為什麼我在 PHP 中收到「嚴格標準:不應靜態呼叫非靜態方法」?

Susan Sarandon
發布: 2024-11-24 06:04:12
原創
808 人瀏覽過

Why Am I Getting

非靜態方法呼叫

遇到的錯誤,「錯誤訊息嚴格標準:不應靜態呼叫非靜態方法,」當像靜態方法一樣呼叫非靜態方法時會發生。

在您提供的 PHP 程式碼中,問題出在 Page 類別。 getInstanceByName() 和 getInstanceBySpecial() 方法被定義為非靜態方法,這意味著必須使用 Page 類別的實例來呼叫它們。但是,您嘗試將它們作為靜態方法調用,而不使用 Page 類別的實例。

解決方案

要解決此問題,您需要使方法透過將 static 關鍵字新增至其聲明中來實現靜態。變更:

function getInstanceByName($name='') {
登入後複製

改為:

public static function getInstanceByName($name='') {
登入後複製

同樣,將 getInstanceBySpecial() 方法修改為靜態。

完成這些變更後,您應該能夠將 getInstanceByName() 和 getInstanceBySpecial() 作為靜態方法調用,而不會出現錯誤。

以上是為什麼我在 PHP 中收到「嚴格標準:不應靜態呼叫非靜態方法」?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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