天天看點

PHP 7.4 中釋出了哪些新特性

2019 年 11 月 28 日,PHP 開發團隊宣布将立即提供 PHP 7.4.0,此版本标志着 PHP 7 系列的第四項功能更新。

PHP 7.4.0 進行了許多改進和新功能,比如:

  • 箭頭函數
  • 預加載
  • 類型屬性
  • FFI
  • 簡化 Null 合并運算符
  • ……

下面我們來具體看一下

箭頭函數

箭頭函數也稱之為短閉包,可實作更簡潔的單行書寫

以前這麼寫

array_map(function (User $user) { 
    return $user->id; 
}, $users)           

複制

現在這麼寫

array_map(fn(User $user) => $user->id, $users)           

複制

你可以在此處深入了解它們。

類型屬性

類中的類屬性可以提示類型

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

複制

你可以在此處深入了解它們。

Null 合并運算符

不再需要這樣做:

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

複制

你可以這樣做:

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

複制

數組擴充運算符

現在你可以在數組中使用展開運算符:

$arrayA = [1, 2, 3];

$arrayB = [4, 5];

$result = [0, ...$arrayA, ...$arrayB, 6 ,7];

// [0, 1, 2, 3, 4, 5, 6, 7]           

複制

FFI

外部函數接口,簡稱 FFI,允許從使用者區調用 C 代碼。這意味着 PHP 擴充可以用純 PHP 編寫并通過 composer 加載。

預加載

預加載是可以帶來一些顯著的性能改進。預加載允許伺服器在啟動時于記憶體中加載 PHP 檔案,并使它們持久化可用于所有後續請求(隻要不停電)。

性能提升當然需要付出代價:如果預加載檔案的源檔案發生變化,則必須重新開機服務。

你可以在此處深入了解它們。

自定義對象序列化

添加了兩個新的魔術方法:

__serialize

__unserialize

以上為部分更新内容僅供參考,詳情請檢視 PHP 的UPGRADING、ChangeLog

沈唁志,一個PHPer的成長之路!

任何個人或團體,未經允許禁止轉載本文:《PHP 7.4 中釋出了哪些新特性》,謝謝合作!