首頁  >  文章  >  PHP 7.4預計在2019年12月發布

PHP 7.4預計在2019年12月發布

藏色散人
藏色散人原創
2019-03-27 11:33:306486瀏覽

PHP 7.4可能會在2019年12月發售。此頁面將定期更新。

<strong>Preloading</strong>#預先載入 rfc

Preloading

<strong></strong>

# (預先載入)是PHP核心的一個驚人的補充,它可以帶來一些主要的效能改進。

簡而言之:如果你今天使用的是框架,那麼它的檔案必須在每次請求時載入和重新編譯。預先載入允許伺服器在啟動時在記憶體中載入PHP文件,並使它們對所有後續請求永久可用。

效能的提高當然是有代價的:如果預先載入檔案的來源發生變化,則必須重新啟動伺服器。 <strong></strong>Typed properties<strong></strong> rfc

類別變數可以是類型提示:

class A
{
    public string $name;
    
    public Foo $foo;
}

更新:到目前為止,已合併了Typed properties,從而為PHP 7.4確認了這些屬性。

Improved type variance

(改進的類型差異) 

rfc

##我以前寫過關於PHP類型系統的文章,所以很高興看到PHP核心中出現了一些改進。

類型差異是一個值得自己發表博文的主題;<strong></strong>簡而言之:你將能夠使用covariant返回類型

class ParentType {}
class ChildType extends ParentType {}

class A
{
    public function covariantReturnTypes(): ParentType
    { /* … */ }
}

class B extends A
{
    public function covariantReturnTypes(): ChildType
    { /* … */ }
}
contravariant

參數。

class A
{
    public function contraVariantArguments(ChildType $type)
    { /* … */ }
}

class B extends A
{
    public function contraVariantArguments(ParentType $type)
    { /* … */ }
}

更新:RFC目前處於投票階段,但看起來它會毫無問題地通過。

Foreign Function Interface<strong></strong>(外部函數介面) rfc

外部函數接口,簡稱FFI,允許從用戶網域呼叫C程式碼。這意味著PHP擴充可以用純PHP編寫。

值得注意的是,這是一個複雜的話題。你仍然需要C知識才能正確地使用這個特性。

Null

<strong></strong>合併賦值運算子 rfc

不是這樣做:

$data[&#39;date&#39;] = $data[&#39;date&#39;] ?? new DateTime();
你可以這樣做:
$data[&#39;date&#39;] ??= new DateTime();
更新:這個特性現在合併到PHP 7.4。 自訂物件序列化

 

rfc

#這個RFC加入了兩個新的魔術方法:<strong>__serialize</strong>和__unserialize。在RFC中討論了這些方法與__sleep

__wakeup

方法的差異。

更新:RFC通過。這個特性將會在PHP 7.4中加入。 <strong></strong>No more narrow margins

rfc

從技術上講,這並不是與PHP 7.4相關的更新,但它確實值得一提。 RFC的投票規則已經改變:他們總是需要2/3的多數才能通過。

Reflection for references

rfc像Symfony的var轉儲程式這樣的函式庫很大程度上依賴於反射API來可靠地轉儲變數。以前,沒有對引用的適當反射支持,導致這些庫依賴hack來檢測引用。

PHP 7.4加入了

ReflectionReference

類,解決了這個問題。

更新:RFC已通過,PHP 7.4已確認變更。 新增mb_str_split 

rfc

這個函數提供了與str_split相同的功能,但是是在多位元組字符串上。 總是啟用

ext-hash

 

rfc如標題所說,這個擴充功能現在在所有PHP安裝中都是永久可用的。 <strong></strong>預設不會啟用PEAR

#由於PEAR不再積極維護,核心團隊決定以PHP 7.4刪除預設安裝。

<strong></strong>密碼雜湊(Hashing<strong></strong>)登錄機碼 rfc

內部變更雜湊庫的使用方式,以便使用者更容易使用它們。

<strong></strong>棄用

ext / wwdx

rfc

這種資料交換格式從來沒有標準化過,現在它的擴充被廢棄了。

###向後不相容的變更升級#########在升級PHP版本時,應該始終查看###完整的升級文件###。 ######以下是突出顯示的一些向後不相容的更改:######• ###parent::###在沒有父級的類別中引用將產生編譯時錯誤而不是運行時錯誤。 ###

• 在DateTimedatetimevariable實例上呼叫var_dump將不再在物件上留下可存取的屬性。

openssl_random_pseudo_bytes將在錯誤情況下拋出例外。

• 試圖序列化PDOPDOStatement實例將產生異常,而不是PDOException

• 在ArrayObject實例上呼叫get_object_vars()將傳回ArrayObject本身的屬性,而不是被包裝的陣列或物件的值。注意(數組)強制轉換不受影響。

翻譯自:https://stitcher.io/blog/new-in-php-74#reflection-for-references-rfc

##相關推薦:

PHP7和PHP5在安全上的差異(實例)

PHP7 的抽象語法樹(AST)所帶來的變化

#《

PHP7語言的執行原理(PHP7原始碼分析)

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