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
滑稽大佬带我飞~
@西枫里博客 你带我~ 😈
重磅弱引用竟然没提到。。。
@tianyiw 🙈节选一部分…