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 中釋出了哪些新特性》,謝謝合作!