PHP 8.3 將於 2023 年 11 月 23 日更新。它將添加類型化類別常數、一個用於json_validate檢查 json 有效負載的新輔助函數以及對 Randomizer 類別、讀取 ini 配置等的一些小改進。
PHP 團隊將於本月底發布 PHP 的新的小版本。新版本將主要包含一些改進和功能,除了少數幾個之外,對於最終用戶來說並不是非常相關。
類型化類別常數
我們所有人都會在某個時候使用常數。到目前為止,常量的類型由其值推斷。這也意味著,繼承或實作類別的能力可以更改類型。簡而言之,新功能將如下所示:
class Foo { public int BAZ = 1; }
驗證JSON 有效負載
在幾乎所有必須讀取、轉換和寫入JSON 的情況下,都必須先對其進行驗證。可以透過執行「測試解碼」來查看是否拋出了異常,或者只是為無效的有效負載情況設定一個 else 分支。
對於較小的有效負載,這可能還可以,但是將非常大的 JSON 字串解碼為數組僅檢查是否有效並不優雅。此外,它會導致記憶體和/或效能問題。
新的 json_validate 函數承諾檢查給定的字串是否有效的 JSON,並且效能更高,更節省記憶體。如下所示:
json_validate(string $json, int $depth = 512, int $flags = 0): bool
進一步的改進
如我所說,即將推出的 PHP 8.3 版本還有進一步的改進。由於我個人認為它們並不重要,我只想在這裡提到它們以求完整。
Randomizer 改進:小改進,例如為隨機浮點數值指定範圍或定義字串長度。
只讀修訂:允許只讀屬性在複製時重新初始化。這似乎是一個極端情況,但對於深度克隆可能很重要。
#[Override] 屬性:此屬性用於表示程式設計師的「意圖」。它本質上表示“我知道此方法來自父類,我想覆蓋它。如果這會改變,請告訴我。”
匿名只讀類:有些自我解釋。直到現在,無法創建它們,現在 PHP 引入了它。
動態類別常數取得:PHP 允許使用大括號讀取動態類別屬性。使用 8.3,也可以讀取常數(說真的,不要這樣做)。
Traits 中的靜態屬性:將重新宣告從父類別繼承的靜態屬性。就我個人而言,這是你在 PHP 中所能做的一切邪惡的混合體。為什麼?檢查一下。
還有更多。由於我個人認為它們不相關,因此我沒有在這裡列出它們。有關所有更改的完整列表,請查看官方遷移指南。
結論
與每個新版本一樣,沒有黃金法則可以遵循是否要更新。我們強烈建議使用最新版本,這是因為最新版本通常會修復先前版本中的漏洞和錯誤,並提供更好的效能和功能。
以上是PHP 8.3新版即將發布:全新功能一覽的詳細內容。更多資訊請關注PHP中文網其他相關文章!