中国体彩网唯一官网
首頁 > 頭條 > 正文

PHP 7.4預計將在2019年12月發布

原創 2019-05-18 21:33:55 0 2008
贊助會員專享特權
PHP 7.4可能將于2019年12月發布。此頁面將定期更新。

Preloading預加載 rfc

Preloading(預加載)是對PHP核心的一個驚人的補充,它可以帶來一些主要的性能改進。

簡而言之:如果你今天使用的是框架,那么它的文件必須在每次請求時加載和重新編譯。預加載允許服務器在啟動時在內存中加載PHP文件,并使它們對所有后續請求永久可用。

性能的提高當然是有代價的:如果預加載文件的來源發生變化,則必須重新啟動服務器。

Typed properties rfc

類變量可以是類型提示:

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

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

Improved type variance(改進的類型差異) rfc

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

類型差異是一個值得自己發表博文的主題;

簡而言之:你將能夠使用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(外部函數接口) rfc

外部函數接口,簡稱FFI,允許從用戶域調用C代碼。這意味著PHP擴展可以用純PHP編寫。

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

Null合并賦值操作符 rfc

不是這樣做:

$data['date'] = $data['date'] ?? new DateTime();

你可以這樣做:

$data['date'] ??= new DateTime();

更新:這個特性現在合并到PHP 7.4中。

自定義對象序列化 rfc

這個RFC添加了兩個新的魔術方法:__serialize__unserialize。在RFC中討論了這些方法與__sleep__wakeup方法的區別。

更新:RFC通過。這個特性將在PHP 7.4中添加。

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安裝中都是永久可用的。

默認情況下不啟用PEAR

由于PEAR不再積極維護,核心團隊決定用PHP 7.4刪除其默認安裝。

密碼哈希(Hashing)注冊表 rfc

內部更改哈希庫的使用方式,以便用戶更容易地使用它們。

棄用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源碼分析)

php中文網最新課程二維碼
  • 相關標簽:PHP 7.4
  • 本文原創發布php中文網 ,轉載請注明出處,感謝您的尊重!
  • 相關文章


  • 看看PHP 7.3新版本中的JSON錯誤處理
  • PHP 7.2新特性:參數類型聲明(附代碼)
  • PHP 7新功能有哪些
  • PHP 7.3更新內容的詳細介紹
  • PHP 7.4預計將在2019年12月發布
  • 網友評論

    文明上網理性發言,請遵守 新聞評論服務協議

    我要評論
    獨孤九賤(5)_ThinkPHP5視頻教程

    獨孤九賤(5)_ThinkPHP5視頻教程

    ThinkPHP是國內最流行的中文PHP開發框架,也是您Web項目的最佳選擇。《php.cn獨孤九賤(5)-ThinkPHP5視頻教程》課程以ThinkPHP5最新版本為例,從最基本的框架常識開始,將...

    獨孤九賤(4)_PHP視頻教程

    獨孤九賤(4)_PHP視頻教程

    江湖傳言:PHP是世界上最好的編程語言。真的是這樣嗎?這個梗究竟是從哪來的?學會本課程,你就會明白了。 PHP中文網出品的PHP入門系統教學視頻,完全從初學者的角度出發,絕不玩虛的,一切以實用、有用...

    獨孤九賤(1)_HTML5視頻教程

    獨孤九賤(1)_HTML5視頻教程

    《php.cn原創html5視頻教程》課程特色:php中文網原創幽默段子系列課程,以惡搞,段子為主題風格的php視頻教程!輕松的教學風格,簡短的教學模式,讓同學們在不知不覺中,學會了HTML知識。 ...

    ThinkPHP5實戰之[教學管理系統]

    ThinkPHP5實戰之[教學管理系統]

    本套教程,以一個真實的學校教學管理系統為案例,手把手教會您如何在一張白紙上,從零開始,一步一步的用ThinkPHP5框架快速開發出一個商業項目。

    PHP入門視頻教程之一周學會PHP

    PHP入門視頻教程之一周學會PHP

    所有計算機語言的學習都要從基礎開始,《PHP入門視頻教程之一周學會PHP》不僅是PHP的基礎部分更主要的是PHP語言的核心技術,是學習PHP必須掌握的內容,任何PHP項目的實現都離不開這部分的內容,通...

    作者信息

    藏色散人

    好好學習天天向上!

    最近文章
    php session_decode函數怎么用 583
    php技術棧是什么 356
    php怎么做頁面靜態化 655

    相關視頻教程

  • PHP編程之道 PHP編程之道
  • PHP零基礎視頻教程 PHP零基礎視頻教程
  • ThinkPHP5基礎視頻教程 ThinkPHP5基礎視頻教程
  • PHP語法基礎與數據庫詳解教程 PHP語法基礎與數據庫詳解教程
  • PHP數據庫編程零基礎入門到精通 PHP數據庫編程零基礎入門到精通
  • 相關視頻章節

    中国体彩网唯一官网