您現在所在的位置:首頁 >關于奇酷 > 行業動態 > PHP 8 發布首個 Alpha 版本

PHP 8 發布首個 Alpha 版本

來源:奇酷教育 發表于:

PHP 8 發布首個 Alpha 版本

  PHP 8 將于今年 11 月 26 日發布,而原定于 6 月 18 日發布的第一個 Alpha 版本跳票到了今天發布。

 
  下載地址:
 
  https://downloads.php.net/~pollita
 
  PHP 8 是一個新的主要版本,它引入了一些重大變更,以及許多新特性和性能改進,下邊簡單介紹一些亮點:
 
  1
 
  JIT,Just-In-Time,即時編譯
 
  最重大的特性非 JIT 莫屬。該特性的研發歷時多年,熬過了 PHP 5 與 7 大版本系列(PHP 6 項目流產),直到去年 3 月份才最終通過投票確認將進入 PHP 8。
 
  JIT 是一種編譯器策略,它將代碼表述為一種中間狀態,在運行時將其轉換為依賴于體系結構的機器碼,并即時執行。在 PHP 中,這意味著 JIT 將為 Zend VM 生成的指令視為中間表述,并以依賴于體系結構的機器碼執行,也就是說托管代碼的不再是 Zend VM,而是更為底層的 CPU。
 
  雖然自 PHP 7.0 以來,通過優化核心數據結構 HashTable、強化 Zend VM 中某些操作碼與持續改進 OPCache 的 Optimizer 組件等具體措施,PHP 性能得到了顯著提升,但是實際上這些優化似乎已經走到極限了。現在 JIT 從底層著手,被認為是目前提升 PHP 性能的最佳出路。
 
  關于引入 JIT 后的性能對比(以及 PHP 8 整體性能),可以參考一下本月 Phoronix 的基準測試(注:用的是 5 月底的源碼構建版進行的測試)。
 
  2
 
  Union Types,聯合類型
 
  Union Types 支持接收多個不同類型的值,它是兩種或多種類型的集合,使用時可以選擇其一。包括 PHP 在內的開源生態的標準庫中使用聯合類型非常普遍,PHP 支持聯合類型,將會允許將更多類型信息從 phpdoc 遷移至函數簽名。可以說,泛型之后,聯合類型是目前類型聲明系統中最大的突破口。
 
  3
 
  Attributes,注解
 
  這里的 Attributes 也就是其它語言中的 annotations(注解),它提供了一種向類添加元數據的方法,無需解析文檔塊。
 
  4
 
  新的 static 返回類型
 
  雖然已經可以返回 self,但是考慮到 PHP 具有動態類型的性質,PHP 8 中支持 static 返回類型將更加高效,對于許多開發者來說應當非常有用。
 
  class Foo
 
  {
 
      public function test(): static
 
  {
 
          return new static();
 
      }
 
  }
 
  5
 
  WeakMap,弱映射
 
  WeakMaps 允許創建從對象到任意值的映射(類似 SplObjectStorage),而不會阻止對用作 key 的對象進行垃圾回收。只要將對象添加到 WeakMap 中,GC 在觸發條件時就可以將其占用內存回收。
 
  PHP 7.4 中,實際上已經引入了對 WeakReference(弱引用)的支持。但是,原始的弱引用本身用途有限,而弱映射在實踐中更為常用。由于沒有提供注冊銷毀回調的功能,因此無法在 PHP 弱引用之上實現有效的弱映射。弱映射的一般用例是將數據與單個對象實例相關聯,而不強迫它們保持活動狀態,避免長時間運行的進程無謂地占用內存。
 
  class Foo
 
  {
 
  private WeakMap $cache;
 
  public function getSomethingWithCaching(object $obj): object
 
  {
 
  return $this->cache[$obj]
 
  ??= $this->computeSomethingExpensive($obj);
 
  }
 
  }
 
  關于 WeakMap/WeakReference,可以參考這一篇的 WeakRef 部分,雖然講的是 JS,但原理是相通的:
 
  https://www.oschina.net/news/106670/what-s-new-in-javascript-google-io-2019
 
  更多的相關特性可以查看:
 
  https://www.php.net/index.php#id2020-06-25-1
 
  https://wiki.php.net/rfc
 
  https://github.com/php/php-src/blob/master/UPGRADING
 
  https://derickrethans.nl/archive.html(Derick Rethans 的博客,他是 PHP 核心貢獻者,也是 PHP 7.4 的 release manager)
 
  PHP 8 是一個重大更新版本,帶了一些重大變更,所以最好查看 UPGRADING 文檔的相關事項。不過實際上,其中許多重大變更在之前的 7.* 版本中已經引入,因此,如果你一直保持最新版本,那么升級到 PHP 8 也影響不大。
主站蜘蛛池模板: 伊人久久亚洲综合影院| 国产成人综合久久精品尤物| 天天综合色天天综合色hd| 亚洲国产aⅴ综合网| 国产色综合久久无码有码| 亚洲日本国产综合高清| 99久久综合狠狠综合久久| 久久婷婷五月综合色奶水99啪| 色综合天天综合婷婷伊人| 久久久久久久综合日本亚洲| 99精品国产综合久久久久五月天 | 亚洲欧美国产日产综合不卡| 久久婷婷五月综合97色直播| 亚洲综合偷自成人网第页色| 亚洲欧美日韩综合一区二区 | 狠狠色综合色区| 久久综合伊人77777麻豆| 观看 国产综合久久久久鬼色 欧美 亚洲 一区二区 | 激情97综合亚洲色婷婷五| 亚洲国产综合久久天堂| 欧美综合自拍亚洲综合图片区| 久久狠狠爱亚洲综合影院| 亚洲综合精品一二三区在线| 久久精品桃花综合| 狠狠色丁香婷婷综合久久来| 伊人色综合久久天天| 九月丁香婷婷亚洲综合色| 综合久久一区二区三区| 综合久久一区二区三区 | 久久综合亚洲色HEZYO国产 | 欧美综合缴情五月丁香六月婷| 狠狠久久综合| 中文字幕乱码人妻综合二区三区| 91精品国产综合久久久久久| 亚洲 欧美 综合 高清 在线| 人人狠狠综合久久亚洲| 狠狠综合久久综合88亚洲| 97SE亚洲国产综合自在线观看| 中文字幕亚洲综合久久2| 高清欧美色欧美综合网站| 久久亚洲高清综合|