看看 PHP 8.4 的新功能

2024 年 5 月 17 日

PHP 8.4 即将推出,在这篇文章中,让我们看看到目前为止已发布的内容以及您可能期望的新功能。

PHP 8.4 计划何时发布?

PHP 8.4 计划于 2024 年 11 月 21 日发布。在发布之前,它将经历 6 个月的预发布阶段,从 Alphas、Betas、Release Candidates,然后正式发布。

PHP 属性挂钩

属性挂钩受到 Kotlin、C# 和 Swift 等语言的启发,其语法包括两种类似于短闭包和多行闭包的语法变体:

class User implements Named
{
    private bool $isModified = false;
 
    public function __construct(
        private string $first,
        private string $last
    ) {}
 
    public string $fullName {
        // Override the "read" action with arbitrary logic.
        get => $this->first . " " . $this->last;
 
        // Override the "write" action with arbitrary logic.
        set {
            [$this->first, $this->last] = explode(' ', $value, 2);
            $this->isModified = true;
        }
    }
}

属性挂钩将有助于删除属性 getter 和 setter 的样板文件,从而允许属性使用挂钩定义访问和更新。

查看我们的帖子了解更多详情: PHP 8.4 中的属性挂钩

new MyClass()->method() 不带括号

由于引入了实例化期间的成员访问,因此您必须包装 new MyClass() 在括号中调用,否则会出现解析错误。建议的语法将允许您访问常量、属性和方法,而无需额外的括号:

// Wrapping parentheses are required to access class members
$request = (new Request())->withMethod('GET')->withUri('/hello-world');
 
// PHP Parse error (<= PHP 8.3): syntax error, unexpected token "->"
$request = new Request()->withMethod('GET')->withUri('/hello-world');

此更新修复了剪纸问题,使类成员访问的处理更加简单,无需添加括号或使用静态构造函数。此语法更改还使 PHP 与其他不需要括号的 C 语言(例如 Java、C# 和 TypeScript)更加一致。

查看我们的帖子了解更多详情: PHP 8.4 中没有额外括号的类实例化

了解更多

您可以按照 PHP 8.4 准备任务 星期


帖子 看看 PHP 8.4 的新功能 首先出现在 Laravel 新闻

加入 Laravel 时事通讯 直接在您的收件箱中获取所有此类最新的 Laravel 文章。