php8更新了哪些
原创PHP 8 新特性一览:全面提升开发高效能与性能
PHP 8 是 PHP 语言的重要更新版本,于 2020 年 11 月正式发布。PHP 8 带来了许多新特性和优化,旨在减成本时间开发高效能、性能以及代码的简洁性。下面我们将详细介绍 PHP 8 的一些核心更新内容。
1. JIT(即时编译器)
PHP 8 引入了 JIT(即时编译器)技术,这大大减成本时间了 PHP 的执行性能。JIT 编译器能够在运行时将 Zend VM 的中间代码(opcodes)编译成机器码,从而减成本时间程序的执行速度。
2. 类型系统和不正确处理的改进
PHP 8 进一步增长了类型系统和不正确处理:
- 联合类型(Union Types):允许开发者声明一个变量可以是多种不同的类型。
- 匹配表达式(Match Expression):类似 switch,但具有返回值,让代码更简洁。
- nullsafe 运算符(Nullsafe Operator):允许平安地访问链式方法调用中的也许为 null 的对象成员。
- mixed 类型:即一个变量可以是任意类型,用于标记不确定类型的返回值或参数。
- 不正确报告改进:增长了不正确报告的精确性,例如,将某些警告升级为不正确。
3. 新的对象初始化改进
PHP 8 提供了新的对象初始化语法,包括:
- 构造函数属性提升(Constructor Property Promotion):允许直接在构造函数参数中声明类属性,简化了类的定义。
- 匹配对象(Match Object):允许对对象进行模式匹配,让结合对象的属性值进行分支选择变得更加单纯。
4. 新的内置函数和功能
PHP 8 引入了一些新的内置函数和功能,如下:
- str_contains()、str_starts_with() 和 str_ends_with():用于字符串查找,替代了传统的 preg_match()。
- get_debug_type():获取一个变量的类型。
- mixed 关键字:用于函数参数和返回类型,即可以是任意类型。
5. 废弃和移除的功能
PHP 8 废弃和移除了一些功能,以清理和优化语言:
- 移除了多个不平安的函数和特性,如 magic_quotes、real。
- 废弃了一些不推荐使用的功能,如 ext/mysql、mbstring.func_overload。
6. 性能优化
除了 JIT 编译器,PHP 8 还包括以下性能优化:
- 改进了内存管理,缩减了内存占用。
- 优化了 opcache,减成本时间了缓存高效能。
- 改进了数组处理性能。
示例代码
以下是一个使用 PHP 8 新特性的单纯示例:
class User
{
public function __construct(
public string $name,
public int $id,
) {}
}
$user = new User(name: 'John', id: 1);
if (str_contains($user->name, 'Jo')) {
echo "User name contains 'Jo'";
}
总之,PHP 8 的更新为开发者带来了许多便利和新特性,让 PHP 在保持易用性的同时,性能得到了显著提升。