JIT(即时编译)
PHP 8.0 引入 JIT,显著提升 CPU 密集型任务的性能。
// php.ini 配置
opcache.jit = tracing
opcache.jit_buffer_size = 100MJIT 将热点代码编译为机器码,据测试 PHP 8 比 PHP 7.4 性能提升约 10-30%。
命名参数
无需按顺序传参,提高可读性。
function createUser(string $name, int $age = 18, string $city = '北京') {
return "$name, $age, $city";
}
// 传统方式
echo createUser('张三', 25, '上海');
// 命名参数(跳过可选参数)
echo createUser(name: '张三', city: '上海'); // 年龄使用默认 18属性(注解)
PHP 8.2 原生支持属性,替代 PHPDoc 注解。
#[Route('/api/user', methods: ['GET'])]
function getUser(): mixed {
// ...
}
// 自定义属性
#[Attribute]
class Controller {
public function __construct(public string $prefix) {}
}构造器属性提升
class User {
public function __construct(
public string $name,
public int $age,
private string $email
) {}
}
// 等价于定义属性并自动赋值PHP 8 带来的改进让这门语言更现代、更高效。
