首頁 >後端開發 >php教程 >為什麼 PHP 5.2 不允許抽象靜態類別方法?

為什麼 PHP 5.2 不允許抽象靜態類別方法?

DDD
DDD原創
2024-11-16 07:54:03934瀏覽

Why Are Abstract Static Class Methods Not Allowed in PHP 5.2 ?

在 PHP 5.2 中,為什麼不允許抽象靜態類別方法?

最初的編碼沒有嚴格的警告,現在項目在啟用它們後會觸發大量警告。其中有一個關於抽象父類別 Program 中的抽象靜態函數的警告。根據文檔,抽象靜態函數在 PHP 5.0.x 和 5.1.x 中無意中被允許,不再被允許。

為什麼抽象靜態函數不應該存在?

PHP 5.2 缺乏後期靜態綁定,在 PHP 5.3 中可用。此功能使父類別方法可以呼叫其子類別的靜態方法。如果沒有它,PHP 5.2 中的抽象靜態方法將無效,因為父類別無法呼叫子類別靜態方法。

傳奇仍在繼續

在引入後期靜態綁定後,抽象靜態方法重新獲得相關性。儘管如此,警告仍然存在。雖然有人認為抽象靜態方法可能會導致在抽象類別中暴露損壞的公共方法,但這個論點被認為很弱。

錯誤回報 53081 的奇怪案例

請求 PHP 錯誤報告 53081刪除警告。該報告最初被認為是偽造的,後來由於 PHP 的創建者 Rasmus Lerdorf 的誤解而被認為是偽造的。

PHP 7 中的解決方案

該警告將在 PHP 7 中刪除感謝 Nikita Popov 的 PHP RFC:重新分類 E_STRICT 通知。這種向理智的轉變將允許開發人員利用抽象靜態方法,而不會遇到 PHP 5.2 中遇到的錯誤警告。

以上是為什麼 PHP 5.2 不允許抽象靜態類別方法?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn