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

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

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
4 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
4 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
4 週前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
1 個月前By尊渡假赌尊渡假赌尊渡假赌

熱工具

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

SecLists

SecLists

SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

Dreamweaver Mac版

Dreamweaver Mac版

視覺化網頁開發工具

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )專業的PHP整合開發工具