首页 后端开发 php教程 PHP8.2最新进展,即将进行新特性冻结!

PHP8.2最新进展,即将进行新特性冻结!

Jul 04, 2022 pm 01:54 PM
php

PHP基金会每月都会在博客上发表当月的PHP核心的最新进展。本文介绍的是6月的进展情况。

PHP8.2 的 QA 版本 和 特性冻结

PHP8.2计划于11 月 24 日 发布,PHP的版本发行管理员们已经发布了PHP8.2的Alpha 1和Alpha 2的版本。

这些Alpha 版本不适合用于生产环境,而是用作测试环境和本地开发的版本节点。

已经编译的windows版本可以在 https://windows.php.net/qa/ 上找到,Docker 镜像 可以在Docker Hub 上找到,源代码在Github 上的 php/php-src中,可以自行编译,在 Homebrew 上,PHP 8.2-dev 软件包可从 shivammathur/php 查看相关指令。

7 月 19 日 是 PHP 8.2 特性冻结日期,在此之后PHP8.2不在接收新的特性建议。PHP的新特性都有2周的讨论期和2周的投票期。在特性冻结之前必须对所有的RFC(提案)进行投票。

RFC的更新

上次在 PHP8.2将有哪些改动(性能改进、新特性)!中介绍了一部分已经通过的新特性,如今又有一些新特性被投票通过,还有一些正在进行中。

已实现:允许false和null作为独立类型

在之前的文章中已经介绍过,有些开发者并不看好这件事,认为false作为独立类型并没有什么用。在这之前false只能和其他类型一起联合声明。

你可以在PHP的播客中了解到对开发者George Peter Banyard的访谈。https://phpinternals.news/99 ,他提到大量的传统函数会在内部返回false和抛出异常。并不会返回有实际意义的东西,返回false也许是为了中断当前函数代码的执行。所以使用false作为独立的返回值也是有意义的。

已实现:允许true作为独立类型

早在之前的文章中,小编就提到过,false可以作为独立的类型(并且进行声明),但是true却不可以。此提案建议添加true作为独立类型,使PHP的类型系统根据表现力。

已通过:随机扩展5.x

是 Go Kudo 提出的 RFC 的第五次迭代,改进PHP的随机数生成器,并且将一些列的改动移动到单独的扩展中。

已通过:为is_callable添加弃用通知,并添加callable类型

PHP以后将弃用is_callable函数的部分表现,但在PHP8.2中只会产生弃用通知。这样做的原因,简单来讲,is_callable使用起来语法混乱。但注意,is_callable只是放弃了判断字符串的用法,比如is_callable(‘myFunction’),对于其他类型仍然是可用的,比如一个变量代表的是一个回调函数。

已通过:析取范式类型

该提案提议PHP支持更多的类型声明组合,比如:

(A&B&D)|int|null
登录后复制

就是说该值有可能是null,有可能是整型,也有可能是实现了A接口、B接口、D接口的对象。

对此可以查看提案详情:https://wiki.php.net/rfc/dnf_types

更多的RFC

还有更多讨论中的提案,下面做一个简单的介绍和链接。

讨论中:新的CURL RUL API(增加curl类和url类)

讨论中:const声明时使用枚举属性值

讨论中:PDO程序中特性的子类(能够提高对sqlite、pgsql的支持)

讨论中:使 iterator_*() 系列接受所有可迭代对象(目前只接受Traversables,但不接受array)

讨论中:在枚举中实现自动Stringable(但仍然不能自定义覆盖)

讨论中:短闭包(匿名函数想要使用外部变量必须使用use声明,短闭包可以解决这样的问题(,跟js的箭头函数效果一样))

提到的文章链接:

  • PHP8.2的windows版本( https://windows.php.net/qa/ )

  • PHP8.2的docker 镜像( https://hub.docker.com/_/php?tab=tags&page=1&name=8.2.0 )

  • PHP8.2的源码托管地址( https://github.com/php/php-src )

  • PHP8.2的Mac工具Homebrew 安装( https://github.com/shivammathur/homebrew-php )

  • PHP8.2将有哪些新东西?( https://phpreturn.com/index/a626a74a300dc5.html )

  • 提案:将false和null作为独立类型( https://wiki.php.net/rfc/null-false-standalone-types )

  • 对于(将false和null作为独立类型)提案的开发者访谈( https://phpinternals.news/99 )

  • 提案:将true作为独立类型( https://wiki.php.net/rfc/true-type )

  • 提案:对is_callable的弃用通知( https://wiki.php.net/rfc/partially-supported-callables-expand-deprecation-notices )

  • 提案:析取范式类型( https://wiki.php.net/rfc/dnf_types )

  • 提案:新的CURL URL API ( https://wiki.php.net/rfc/curl-url-api )

  • 提案:const声明使用枚举属性值( https://wiki.php.net/rfc/fetch_property_in_const_expressions )

  • 提案:PDO的特定子类( https://wiki.php.net/rfc/pdo_driver_specific_subclasses )

  • 提案:扩大iterator的可迭代多项( https://wiki.php.net/rfc/iterator_xyz_accept_array )

  • 提案:在没居中实现自动Stringable( https://wiki.php.net/rfc/auto-implement_stringable_for_string_backed_enums )

  • 提案:短闭包( https://wiki.php.net/rfc/auto-capture-closure )

关于PHP更多合并说明可以查看:https://thephp.foundation/blog/2022/06/30/php-core-roundup-3/#merged-prs-and-commits

英文原文地址:https://thephp.foundation/blog/2022/06/30/php-core-roundup-3/

转载地址:https://phpreturn.com/index/a62be479ae1e02.html

原文平台:PHP武器库

版权声明:本文由phpreturn.com(PHP武器库官网)原创和首发,所有权利归phpreturn(PHP武器库)所有,本站允许任何形式的转载/引用文章,但必须同时注明出处。

推荐学习:《PHP视频教程

以上是PHP8.2最新进展,即将进行新特性冻结!的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前 By 尊渡假赌尊渡假赌尊渡假赌
仓库:如何复兴队友
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

CakePHP 项目配置 CakePHP 项目配置 Sep 10, 2024 pm 05:25 PM

在本章中,我们将了解CakePHP中的环境变量、常规配置、数据库配置和电子邮件配置。

适用于 Ubuntu 和 Debian 的 PHP 8.4 安装和升级指南 适用于 Ubuntu 和 Debian 的 PHP 8.4 安装和升级指南 Dec 24, 2024 pm 04:42 PM

PHP 8.4 带来了多项新功能、安全性改进和性能改进,同时弃用和删除了大量功能。 本指南介绍了如何在 Ubuntu、Debian 或其衍生版本上安装 PHP 8.4 或升级到 PHP 8.4

CakePHP 日期和时间 CakePHP 日期和时间 Sep 10, 2024 pm 05:27 PM

为了在 cakephp4 中处理日期和时间,我们将使用可用的 FrozenTime 类。

CakePHP 文件上传 CakePHP 文件上传 Sep 10, 2024 pm 05:27 PM

为了进行文件上传,我们将使用表单助手。这是文件上传的示例。

CakePHP 路由 CakePHP 路由 Sep 10, 2024 pm 05:25 PM

在本章中,我们将学习以下与路由相关的主题?

讨论 CakePHP 讨论 CakePHP Sep 10, 2024 pm 05:28 PM

CakePHP 是 PHP 的开源框架。它的目的是使应用程序的开发、部署和维护变得更加容易。 CakePHP 基于类似 MVC 的架构,功能强大且易于掌握。模型、视图和控制器 gu

如何设置 Visual Studio Code (VS Code) 进行 PHP 开发 如何设置 Visual Studio Code (VS Code) 进行 PHP 开发 Dec 20, 2024 am 11:31 AM

Visual Studio Code,也称为 VS Code,是一个免费的源代码编辑器 - 或集成开发环境 (IDE) - 可用于所有主要操作系统。 VS Code 拥有针对多种编程语言的大量扩展,可以轻松编写

CakePHP 创建验证器 CakePHP 创建验证器 Sep 10, 2024 pm 05:26 PM

可以通过在控制器中添加以下两行来创建验证器。

See all articles