PHP 8.0 新特性

PHP 8.0 有哪些重磅更新

PHP 8.0 是一个大版本更新,带来了很多革命性的特性。

1. JIT 编译

PHP 8.0 引入了 JIT(即时编译),性能大幅提升,计算密集型场景性能翻倍。

2. 命名参数

array_filter(array: $array, callback: fn($x) => $x > 0);

不用按顺序传参,写参数名就行,可读性更好。

3. 枚举 Enum

enum Status: string
{
    case Pending = 'pending';
    case Active = 'active';
    case Rejected = 'rejected';
}

4. 构造函数属性提升

class User {
    public function __construct(
        public int $id,
        public string $name
    ) {}
}

不用再写 $this->id = $id 了,构造函数直接定义属性。

5. 空安全运算符

$user?->getAddress()?->city;

不用层层判断 null,有 null 直接返回 null。

6. Match 表达式

$result = match($status) {
    200 => '成功',
    404 => '未找到',
    default => '未知'
};

比 switch 更简洁,还能直接赋值。

7. 联合类型

function foo(int|string $input) {}

参数可以是多种类型。

总结

PHP 8.0 是现代 PHP 的起点,类型系统更完善,语法更现代。新项目强烈推荐用 PHP 8.0+。


emer 发布于  2026-10-4 10:34 

MySQL 8.0 新特性

MySQL 8.0 有哪些重要更新

MySQL 8.0 是目前最主流的大版本,相比 5.7 提升很大。

1. 性能提升

8.0 的性能比 5.7 提升约 2 倍,尤其是读取和写入并发场景下提升明显。

2. 原子 DDL

8.0 支持原子 DDL,建表、删表操作要么全成功要么全失败,不会出现一半成功一半失败的情况。

3. 窗口函数

支持窗口函数,比如 ROW_NUMBER()、RANK(),做排名统计很方便:

SELECT name, score,
  RANK() OVER (ORDER BY score DESC) as rank
FROM students;

4. CTE 公共表表达式

支持 WITH 语法,复杂 SQL 写起来更清晰:

WITH top_users AS (
  SELECT id, name FROM users WHERE vip = 1
)
SELECT * FROM top_users;

5. JSON 增强

JSON 操作函数更丰富,性能也更好,基本可以替代 MongoDB 的简单场景。

6. 隐藏索引

可以把索引设为隐藏状态,不删除但暂时不用,用来测试索引是否真的有用。

7. 字符集变化

默认字符集从 latin1 改成了 utf8mb4,支持 Emoji 表情。

总结

MySQL 8.0 是目前新项目的首选,性能好、特性全。老项目从 5.7 升级要注意兼容性,尤其是 SQL 模式和函数变化。


emer 发布于  2026-10-4 10:28