資(zī)訊

精準傳達 • 有效溝通

從品牌網站建設到網絡營銷策劃,從策略到執行的一(yī)站式服務

PHP 8.1.0 正式發布了

來源:公司資(zī)訊 | 2021.11.29

PHP 8.1.0 現已發布,該版本帶來了許多改進和新功能。

枚舉
使用枚舉而不是一(yī)組常量并立即進行驗證。


隻讀屬性
隻讀屬性不能在初始化後更改,比如,在爲它們分(fēn)配值後。它們可以用于對值對象和數據傳輸對象建模。

First-class 可調用語法
現在可以獲得對任何函數的引用。


新的初始化器
對象現在可以用作默認參數值、靜态變量和全局常量,以及屬性參數,這有效地使使用嵌套屬性成爲可能。

純交集類型
當一(yī)個值需要同時滿足多個類型約束時,使用交集類型。注意,目前無法将交集和聯合類型混合在一(yī)起,例如 A&B|C。

Never 返回類型
使用 never 類型聲明的函數或方法表示它不會返回值,并且會抛出異常或通過調用 die()、exit()``、trigger_error()` 或類似的東西來結束腳本的執行。


5
never不同之處void,在于void仍然允許程序繼續。這似乎是一(yī)個新奇的功能,但它實際上對靜态分(fēn)析器來說是一(yī)個非常有用的功能。

Final 類常量
可以聲明 final 類常量,以禁止它們在子類中(zhōng)被重寫。

顯式八進制數字表示法
您可以使用0o和0O來表示八進制數。前面通過在數字前面加上前綴的表示法0仍然有效。

纖程
Fibers 是用于實現輕量級協作并發的原語。它們是一(yī)種創建可以像生(shēng)成器一(yī)樣暫停和恢複的代碼塊的方法,但可以從堆棧中(zhōng)的任何位置進行。Fibers 本身并沒有提供并發性,仍然需要一(yī)個事件循環。但是,它們允許通過阻塞和非阻塞實現共享相同的 API。Fibers 允許擺脫以前在 Promise::then() 或基于生(shēng)成器的協程中(zhōng)看到的樣闆代碼。庫通常會圍繞 Fiber 構建進一(yī)步的抽象,因此無需直接與它們交互。

對字符串鍵控數組的數組解包支持
PHP 以前支持通過擴展運算符在數組内部解包,但前提是數組具有整數鍵。現在也可以使用字符串鍵解包數組。


新array_is_list功能
可能偶爾不得不處理這個問題:确定數組的鍵是否按數字順序排列,從索引 0 開(kāi)始。就像json_encode決定數組應該編碼爲數組還是對象一(yī)樣。

性能優化
PHP 8.1 在性能方面也有一(yī)些改動,包括:

ARM64 的 JIT 後端 (AArch64)

繼承緩存(避免在每個請求中(zhōng)重新鏈接類)

快速類名解析(避免小(xiǎo)寫和哈希查找)

timelib 和 ext/date 性能改進

SPL 文件系統叠代器改進

序列化/反序列化優化

一(yī)些内部函數優化(get_declared_classes()、explode()、strtr()、strnatcmp()、dechex())

—— 靈通雲微信公衆号 ——

熱門标簽

上一(yī)條———————

下(xià)一(yī)條———————

十七年 建站經驗

多一(yī)份參考,總有益處

聯系靈通雲,免費(fèi)獲得專屬《策劃方案》及報價

咨詢相關問題或預約面談,可以通過以下(xià)方式與我(wǒ)們聯系

業務熱線:400-688-6062 / 大(dà)客戶專線   南(nán)通:15818561755