PHP 8 Beta 測試已經開始

介紹 PHP 8 程式語言新分支的第一個測試版。該版本計劃於 26 月 7.4.9 日發布。 同時,PHP 7.3.21、XNUMX 和
7.2.33,消除了累積的錯誤和漏洞。

主要的 創新 PHP 8:

  • 包容 即時編譯器,使用它可以提高生產力。
  • 支持 命名函數參數,允許您將與名稱相關的值傳遞給函數,即您可以按任意順序傳遞參數並定義可選​​參數。 例如,「array_fill(start_index: 0, num: 100, value: 50)」。
  • 呼叫方法時 允許 使用“?”運算符,它允許您僅在該方法存在時才發起調用,從而避免了返回“null”值的不必要檢查。 例如,「$dateAsString = $booking->getStartDate()?->asDateTimeString()」;
  • 支持 聯合類型,定義兩種或多種類型的集合(例如,「public function foo(Foo|Bar $input): int|float;」)。
  • 支持 屬性 (註解)允許您將元資料(例如類型資訊)綁定到類,而無需使用 Docblock 語法。
  • 表達支持 匹配,與 switch 不同,它可以傳回值,支援組合條件,使用嚴格的類型比較,並且不需要「中斷」規範。

    $結果=匹配($輸入){
    0 => “你好”,
    '1', '2', '3' => “世界”,
    };

  • 縮短語法 類別定義,允許您組合建構函數和屬性的定義。
  • 新的返回類型 - 靜止.
  • 新類型- 混合,可用來判斷函數是否接受不同類型的參數。
  • 表達 來處理異常狀況。
  • 弱映射 創建可以在垃圾收集期間犧牲的物件(例如,儲存不必要的快取)。
  • 機會 對物件使用表達式“::class”(類似於呼叫 get_class())。
  • 機會 未綁定到變數的異常的 catch 區塊中的定義。
  • 機會 在函數參數清單中的最後一個元素後面留下一個逗號。
  • 新介面 可穿線 標識任何可以轉換為字串的字串類型或資料(可以使用 __toString() 方法)。
  • 新功能 海峽包含(),strpos 的簡化類似物,用於確定子字串的出現,以及函數 str_starts_with() 和 str_ends_with() 用於檢查字串開頭和結尾的匹配。
  • 添加了功能 fdiv(),它執行除法運算,除以零時不會拋出錯誤。
  • 改變了 字串連接邏輯。 例如,表達式 'echo "sum:" 。 $a + $b' 之前被解釋為 'echo ("sum: " . $a) + $b',在 PHP 8 中將被視為 'echo "sum: " 。 ($a + $b)'。
  • 收緊 檢查算術和位元運算,例如表達式“[] % [42]”和“$object + 4”將導致錯誤。
  • 實施的 一種穩定的排序演算法,其中相同值的順序在不同的運行中得以保留。
  • 來源: opennet.ru

添加評論