上下文:
在PHP 8.1 中,指定返回類型方法變得更加普遍,導致與現有實現發生衝突。
問題:
當方法的返回類型從相容類型更改為不相容型別或未指定時,以下棄用出現通知:
Deprecated: Return type of [Method Name] should either be compatible with ..., or the #[\ReturnTypeWillChange] attribute should be used...
返回類型協方差的含義:
PHP 7.0 引入了回傳類型,確保基於指定約定呼叫程式碼的行為一致。擴充或實作類別必須維護相同或更具體的回傳類型。
棄用背景:
隨著 PHP 8.0 中 Union 類型的添加,內部函數和方法獲得了返回類型規格。但是,強制執行這些類型會破壞向後相容性。相反,針對暫定更改引入了棄用通知。
#[\ReturnTypeWillChange] 屬性的用途:
此屬性指示傳回類型的計畫變更。 PHP 8.1 忽略標有此屬性的方法的棄用通知,從而允許支援較舊的 PHP 版本。
要做什麼:
注意: PHP 9.0 中可能會強制執行返回類型,因此計劃相應地處理 #[\ReturnTypeWillChange] 屬性。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3