最初的編碼沒有嚴格的警告,現在項目在啟用它們後會觸發大量警告。其中有一個關於抽象父類別 Program 中的抽象靜態函數的警告。根據文檔,抽象靜態函數在 PHP 5.0.x 和 5.1.x 中無意中被允許,不再被允許。
PHP 5.2 缺乏後期靜態綁定,在 PHP 5.3 中可用。此功能使父類別方法可以呼叫其子類別的靜態方法。如果沒有它,PHP 5.2 中的抽象靜態方法將無效,因為父類別無法呼叫子類別靜態方法。
在引入後期靜態綁定後,抽象靜態方法重新獲得相關性。儘管如此,警告仍然存在。雖然有人認為抽象靜態方法可能會導致在抽象類別中暴露損壞的公共方法,但這個論點被認為很弱。
請求 PHP 錯誤報告 53081刪除警告。該報告最初被認為是偽造的,後來由於 PHP 的創建者 Rasmus Lerdorf 的誤解而被認為是偽造的。
該警告將在 PHP 7 中刪除感謝 Nikita Popov 的 PHP RFC:重新分類 E_STRICT 通知。這種向理智的轉變將允許開發人員利用抽象靜態方法,而不會遇到 PHP 5.2 中遇到的錯誤警告。
以上是為什麼 PHP 5.2 不允許抽象靜態類別方法?的詳細內容。更多資訊請關注PHP中文網其他相關文章!