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