链接错误
修改理由:
此投稿状态为 标记为已读。
标题修改:
标签修改:
内容修改:
| Old | New | Differences |
|---|---|---|
| 1 | ||
| 2 | 1 | PHP 8.1 已经在 [2021 年 11 月 25 日](https://wiki.php.net/todo/php81) 发布,在文章中,在本文中,我们将逐一介绍所有功能、性能改进、更改和弃用。 |
| 3 | 2 | |
| 4 | 3 | ## 新特性 | … | … |
| 19 | 18 | } |
| 20 | 19 | ``` |
| 21 | 20 | |
| 22 | ||
| 23 | ||
| 21 | ||
| 22 | ||
| 24 | 23 | 以下是它们的使用方式: |
| 25 | 24 | |
| 26 | 25 | ``` | … | … |
| 39 | 38 | $post->setStatus(Status::Active); |
| 40 | 39 | ``` |
| 41 | 40 | |
| 42 | 你可以在 [这篇文章](https://stitcher.io/blog/ | |
| 41 | 你可以在 [这篇文章](https://stitcher.io/blog/php-enums) 中找到如何使用枚举的深入分析。 | |
| 43 | 42 | |
| 44 | 43 | * * * * * |
| 45 | 44 | … | … |
| 65 | 64 | |
| 66 | 65 | * * * * * |
| 67 | 66 | |
| 68 | ||
| 69 | ||
| 67 | ||
| 68 | ||
| 70 | 69 | ### 性能提升 PR |
| 71 | 70 | |
| 72 | 71 | … | … |
| 92 | 91 | |
| 93 | 92 | * * * * * |
| 94 | 93 | |
| 95 | ||
| 96 | ||
| 94 | ||
| 95 | ||
| 97 | 96 | ### RFC的初始值设定项中出现`new` |
| 98 | 97 | |
| 99 | 98 | 此RFC允许您在函数定义中使用关键字 `new` 作为默认参数,也可以在属性参数等地方使用。 | … | … |
| 137 | 136 | |
| 138 | 137 | * * * * * |
| 139 | 138 | |
| 140 | ||
| 141 | ||
| 139 | ||
| 140 | ||
| 142 | 141 | 你想了解更多关于PHP 8.1吗?有(PHP 8.1之路)(https://road-to-php.com/)。在接下来的十天里,你每天会收到邮件覆盖新的PHP 8.1和退出功能;之后你会自动unsubscribed所以没有垃圾邮件或跟踪。(现在就订阅!)(https://road-to-php.com/) |
| 143 | 142 | |
| 144 | 143 | ### 一流的可调用语法RFC | … | … |
| 165 | 164 | } |
| 166 | 165 | ``` |
| 167 | 166 | |
| 168 | ||
| 169 | ||
| 167 | ||
| 168 | ||
| 170 | 169 | 如果你喜欢这种代码风格,你需要创建一个新的接口 `Sluggable`,并在 `$post` 中实现它, |
| 171 | 170 | If you like this style of programming, you'd need to create a new interface `Sluggable` and implement it in `$post`, 交叉类型解决了这种额外的开销。 |
| 172 | 171 | … | … |
| 194 | 193 | ### 新函数 `array_is_list` RFC |
| 195 | 194 | |
| 196 | 195 | 你可能偶尔需要处理类似这样的问题:确定数组的键是否从索引0开始按数字顺序排列。例如 `json_ encode` 需要决定将 json 转换为数组还是对象。 |
| 197 | ||
| 198 | ||
| 196 | ||
| 197 | ||
| 199 | 198 | PHP 8.1添加了一个内置函数来确定数组是否是具有这些语义的列表: |
| 200 | 199 | |
| 201 | 200 | ``` | … | … |
| 261 | 260 | fclose($file); |
| 262 | 261 | ``` |
| 263 | 262 | |
| 264 | ||
| 265 | ||
| 263 | ||
| 264 | ||
| 266 | 265 | 因为磁盘同步是一个文件系统操作,所以`fsync`函数将只对普通文件流起作用。尝试同步非文件流将发出警告。 |
| 267 | 266 | |
| 268 | 267 | * * * * * | … | … |
| 291 | 290 | 或者应该使用 #[ReturnTypeWillChange] 属性暂时隐藏通知 |
| 292 | 291 | ``` |
| 293 | 292 | |
| 294 | ||
| 295 | ||
| 293 | ||
| 294 | ||
| 296 | 295 | 你可能注意到了,这个错误信息会在使用 `phpunit/phpunit`、`symfony/finder` 和其他流行的开源包中出现。实际是因为内部函数开始使用正确的返回类型。如果想要从标准库(如`IteratorAggregate`)中继承一个类,这时还需要添加返回类型。 |
| 297 | 296 | |
| 298 | 297 | 修复方法很简单:如果第三方软件包中出现错误,请更新软件包的代码(其中大多数已在最新版本中修复)。如果代码中出现错误,您可以添加 `ReturnTypeWillChange` 属性,在 PHP 9.0 之前抑制这些错误。下面是一个类扩展 `DateTime` 的示例: | … | … |
| 311 | 310 | } |
| 312 | 311 | ``` |
| 313 | 312 | |
| 314 | ||
| 315 | ||
| 313 | ||
| 314 | ||
| 316 | 315 | 或者你可以添加返回类型: |
| 317 | 316 | |
| 318 | 317 | ``` | … | … |
| 345 | 344 | by_ref($GLOBALS); |
| 346 | 345 | ``` |
| 347 | 346 | |
| 348 | ||
| 349 | ||
| 347 | ||
| 348 | ||
| 350 | 349 | Nikita分析了Packagist上排名前2000的包, 只发现了23个会受到这一变化的影响。我们可以得出结论,这种技术突破性变化的影响将很小,这就是为什么内部决定在PHP 8.1中添加它。请记住,考虑到这一变化对我们代码中的每个地方都有积极的性能影响,我们中的大多数人都将从这一更改中获益。 |
| 351 | 350 | |
| 352 | 351 | ### 资源到对象的迁移 | … | … |
| 357 | 356 | |
| 358 | 357 | `finfo_file`、`finfo_open`等函数用于接受和返回资源。从PHP8.1开始,它们可以使用所有的[`finfo`](https://www.php.net/manual/en/class.finfo.php)对象。 |
| 359 | 358 | |
| 360 | ||
| 361 | ||
| 359 | ||
| 360 | ||
| 362 | 361 | ** 具有`IMAPConnection` 对象的 IMAP 函数** |
| 363 | 362 | |
| 364 | 363 | 就像 fileinfo 的改变一样,IMAP 函数如 `imap_body` 和 `imap_open` 不再使用资源 | … | … |
| 383 | 382 | |
| 384 | 383 | > PHP 本身允许自动复活(根据 falsey 值自动创建数组)。这个特性非常有用,在许多 PHP 项目中都有使用,特别是在变量未定义的情况下。但是,有一点奇怪,允许从 false 和 null 值创建数组。 |
| 385 | 384 | |
| 386 | ||
| 387 | ||
| 385 | ||
| 386 | ||
| 388 | 387 | 您可以在 RFC 页面上阅读详细信息。总之,不推荐使用这种行为: |
| 389 | 388 | |
| 390 | 389 | ``` | … | … |
| 413 | 412 | |
| 414 | 413 | * * * * * |
| 415 | 414 | |
| 415 | ||
| 416 | ||
| 417 | 现在就是这样,记住我会在一年中定期更新这篇文章,所以如果你想要随时了解的话,一定要[订阅](https://stitcher.io/newsletter/subscribe)。你对 PHP 8.1感到兴奋吗?在[Twitter](https://twitter.com/brendt_gd)上告诉我! | |
| 416 | 418 | |
| 417 | ||
| 418 | ||
| 419 |
关于 LearnKu