PHP 8.1 来了

Laravel

PHP 团队昨天 宣布 发布了 PHP 8.1:

🥳 PHP 8.1 发布了!

🔗 阅读所有相关信息:t.co/ToeHc3YGau

♻️ 迁移指南:t.co/BVVZ7lSXd1

🐘 非常感谢贡献者所做的一切,感谢 RM 发布这个惊人的新版本!

❓ 您最喜欢的新功能是什么?

— php.net (@official_php) 2021 年 11 月 25 日

根据公告,以下是 PHP 8.1 的主要功能列表:

枚举

PHP 8.1 原生支持枚举(Enums),提供了一个 rich api 来定义和使用枚举:

enum Status
{
    case Draft;
    case Published;
    case Archived;
}
function acceptStatus(Status $status) {...}

只读属性

只读属性在初始化后无法更改。您可以确信您的数据类是一致的。 PHP 8.1 可以通过定义作者不打算更改的公共属性来减少代码,不需要通过「getter」方法访问私有属性:

class BlogData
{
    public readonly Status $status;

    public function __construct(Status $status)
    {
        $this->status = $status;
    }
}

交集类型

当需要同时满足多个约束时,您可以使用交集类型:

function count_and_iterate(Iterator&Countable $value) {
    foreach ($value as $val) {
        echo $val;
    }

    count($value);
}

First-class 可调用语法

您可以通过调用它并传递 ... 来从可调用对象中创建一个闭包:

function add(int $a, int $b) {
    // ...
}

$add = add(...);
$add(1, 5);
$add(5, 3);

以及更多...

要快速了解这些新功能,请查看 PHP 8.1.0 发布公告 页面,了解 PHP 8.1 之前/之后的示例,以及性能改进。

本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。

原文地址:https://laravel-news.com/php-8-1-0

译文地址:https://learnku.com/laravel/t/63191

本文为协同翻译文章,如您发现瑕疵请点击「改进」按钮提交优化建议
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 2

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!