PHP 8.1 来了
PHP 团队昨天 宣布 发布了 PHP 8.1:
🥳 PHP 8.1 发布了!
🔗 阅读所有相关信息:t.co/ToeHc3YGau
♻️ 迁移指南:t.co/BVVZ7lSXd1
🐘 非常感谢贡献者所做的一切,感谢 RM 发布这个惊人的新版本!
❓ 您最喜欢的新功能是什么?
— php.net (@official_php) 2021 年 11 月 25 日
根据公告,以下是 PHP 8.1 的主要功能列表:
- 枚举
- 只读属性
- fibers
- 纯交集类型
- never 返回类型
- First-class 可调用语法
- 类常量的「final」修饰符
- 新的 fsync 和 fdatasync 函数
- 新的 array_is_list 函数
- 显式 八进制数字表示法
- 还有更多...
枚举
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 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。
推荐文章: