上下文:
在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] 屬性。
以上是如何處理 PHP 8.1 中的回傳類型衝突?的詳細內容。更多資訊請關注PHP中文網其他相關文章!