溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

PHP8有哪些新特性

發(fā)布時(shí)間:2020-07-29 11:47:38 來源:億速云 閱讀:179 作者:Leah 欄目:編程語言

今天就跟大家聊聊有關(guān)PHP8有哪些新特性,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

1、JIT進(jìn)入PHP8

JIT就是Just-In-Time的縮寫,中文翻譯為即時(shí)編譯。它作為一種編譯器策略,將代碼表述為一種中間狀態(tài),在運(yùn)行時(shí)將其轉(zhuǎn)換為依賴于體系結(jié)構(gòu)的機(jī)器碼,并即時(shí)執(zhí)行。在 PHP 中,這意味著 JIT 將為 Zend VM 生成的指令視為中間表述,并以依賴于體系結(jié)構(gòu)的機(jī)器碼執(zhí)行,也就是說托管代碼的不再是 Zend VM,而是更為底層的 CPU。為什么要讓JIT進(jìn)入PHP8呢?因?yàn)?span>JIT從底層開始優(yōu)化PHP的性能,突破了PHP性能優(yōu)化的瓶頸。

2、PHP8支持Union Types

Union Types,中文翻譯為聯(lián)合類型。它支持接收多個(gè)不同類型的值,它是兩種或多種類型的集合,使用時(shí)可以選擇其一。如今不僅僅是PHP,許多其他的開源生態(tài)的標(biāo)準(zhǔn)庫中,都在廣泛的使用聯(lián)合類型。而PHP8支持Union Types,將會(huì)允許將更多類型信息從 phpdoc 遷移至函數(shù)簽名。我們可以看到,繼泛型之后,聯(lián)合類型是目前類型聲明系統(tǒng)中最大的突破口。

3、PHP8中支持static返回類型

雖然PHP已經(jīng)可以返回self了,但是考慮到PHP具有動(dòng)態(tài)類型的性質(zhì),PHP8的新特性增加了static返回類型,對(duì)于許多開發(fā)者來說,是相當(dāng)使用的調(diào)整和改變了。

class Foo

{    

      public function test(): static

{       

             return new static();

      }

}

4、增加注解

這里的Attributes也就是其它語言中的annotations(注解),它提供了一種向類添加元數(shù)據(jù)的方法,不需要解析文檔塊。

5PHP8引入了弱引用

WeakMaps 允許創(chuàng)建從對(duì)象到任意值的映射(類似 SplObjectStorage),而不會(huì)阻止對(duì)用作 key 的對(duì)象進(jìn)行垃圾回收。只要將對(duì)象添加到 WeakMap 中,GC 在觸發(fā)條件時(shí)就可以將其占用內(nèi)存回收。

class Foo

{   

 

      private WeakMap $cache;    

     public function getSomethingWithCaching(object $obj): object

{       

            return $this->cache[$obj]          

                 ??= $this->computeSomethingExpensive($obj);   

     }

}

看完上述內(nèi)容,你們對(duì)PHP8有哪些新特性有進(jìn)一步的了解嗎?如果還想了解更多知識(shí)或者相關(guān)內(nèi)容,請(qǐng)關(guān)注億速云行業(yè)資訊頻道,感謝大家的支持。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI