首頁 >頭條 >PHP 8 來了! PHP團隊發布了首個測試版本 Alpha1

PHP 8 來了! PHP團隊發布了首個測試版本 Alpha1

PHPz
PHPz原創
2020-06-28 14:03:087816瀏覽

php8什麼時候發布? PHP開發者非常期待,2020.6.25號 PHP團隊發布了第一個測試版本 Alpha1(PHP 8.0.0),預示著PHP8正式啟動發布週期!

PHP 8 來了! PHP團隊發布了首個測試版本 Alpha1

官方PHP 8.0.0 首版發佈公告如下圖:

 PHP 8 來了! PHP團隊發布了首個測試版本 Alpha1

PHP 8 發佈Alpha 版本,下載網址:

https://www.php.net/archive/2020.php

PHP 8.0.0 亮點:

PHP 8 是一個新的主要版本,它引入了一些重大變更,以及許多新特性和效能改進,下邊簡單介紹一些亮點:

  • JIT,Just-In-Time,即時編譯

大家最關心的特性非JIT 莫屬。此特性的研發歷時多年,熬過了 PHP 5 與 7 大版本系列(PHP 6 專案流產),直到去年 3 月才最終透過投票確認將進入 PHP 8。

JIT 是一種編譯器策略(參考文章:PHP JIT是什麼?PHP8 新特性之JIT 圖文詳解),它將程式碼表述為一種中間狀態,在運行時將其轉換為依賴體系結構的機器碼,並即時執行。在PHP 中,這意味著JIT 將為Zend VM 產生的指令視為中間表述,並以依賴體系結構的機器碼執行,也就是說託管程式碼的不再是Zend VM,而是更為底層的CPU 。

雖然自PHP 7.0 以來,透過優化核心資料結構HashTable、強化Zend VM 中某些操作碼與持續改進OPCache 的Optimizer 元件等具體措施,PHP 效能得到了顯著提升,但實際上這些最佳化似乎已經走到極限了。現在 JIT 從底層著手,被認為是目前提升 PHP 效能的最佳出路。

關於引入 JIT 後的性能對比(以及 PHP 8 整體性能),可以參考一下本月 Phoronix 的基準測試(註:用的是 5 月底的源碼構建版進行的測試)。

 

  • Union Types,聯合類型

## 

Union Types 支持接收多個不同類型的值,它是兩種或多種類型的集合,使用時可以選擇其一。包括 PHP 在內的開源生態的標準函式庫中使用聯合型別非常普遍,PHP 支援聯合型別,將會允許將更多型別資訊從 phpdoc 遷移到函式簽章。可以說,泛型之後,聯合類型是目前類型聲明系統中最大的突破口。

 

  • Attributes,註解

 

這裡的Attributes 也就是其它語言中的annotations(註解),它提供了一種向類別添加元資料的方法,無需解析文件區塊。

以詳細了解:

PHP8 新功能之Attributes

 

  • ##新的static返回類型

  •  

雖然已經可以返回self,但是考慮到PHP 具有動態類型的性質,PHP 8 中支援static 返回類型將更加高效,對於許多開發者來說應當非常有用。

 

  • WeakMap,弱映射

  •  

WeakMaps 允許建立從物件到任意值的對應(類似SplObjectStorage),而不會阻止對用作key 的物件進行垃圾回收。只要將物件加入 WeakMap 中,GC 在觸發條件時就可以將其佔用記憶體回收。

 

PHP 7.4 中,實際上已經引入了 WeakReference(弱引用)的支援。但是,原始的弱引用本身用途有限,而弱映射在實踐中更為常用。由於沒有提供註冊銷毀回呼的功能,因此無法在 PHP 弱引用之上實現有效的弱映射。弱映射的一般用例是將資料與單一物件實例相關聯,而不強迫它們保持活動狀態,避免長時間運行的進程無謂地佔用記憶體。

 

關於WeakMap/WeakReference,可以參考這篇的WeakRef 部分,雖然講的是JS,但原理是相通的:

#https:/ /www.html.cn/web/javascript/19449.html

 

更多的相關功能可以看:

## 

此外還注意到幾個處於投票階段的特性(也就是可能比較快會併入某個版本中的),像match expression(匹配表達式)與使用@@ 或#[] 替代< ;> 的提案都是比較值得關注的:

 PHP 8 來了! PHP團隊發布了首個測試版本 Alpha1

要注意的是,PHP 8 是一個重大更新版本,帶了一些重大變更,所以最好查看 UPGRADING 文件的相關事項。不過實際上,其中許多重大變更在先前的 7.* 版本中已經引入,因此,如果你一直保持最新版本,那麼升級到 PHP 8 也影響不大。

UPGRADING 文档

總結

PHP 8成功就是第二個JAVA,會有大量其它語言開發者回歸PHP陣營!畢竟又快又簡單!大家一起期待吧!

【相關推薦】

php的版本發展史(1995-2020)

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn