PHP 8.1:给开发者的新礼物,如枚举、线程和只读属性
即使经过 26 年的发展和各种年轻而强大的竞争对手,PHP 仍然在全球大多数网站中发挥着重要作用。重要的任务。
为了保持进步,让开发者拥有自己真正需要的东西,适应未来的Web应用,PHP开发团队刚刚(11月25日)发布了8.1正式版本,其中包含了大量实用的内容以及开发人员要求的实用功能。不错的功能(https://www.php.net/index.php#id2021-11-25-1)。
PHP 8.1 最受期待的新功能之一是枚举,我们目前将其称为具有固定数量的值列表的枚举类型。这种方法已经在 C 和 Python 等语言中可用。
使用 enum 关键字声明其名称,语法与类和接口非常相似。 enum 包括声明字符串或整数(= 支持的枚举)、扩展类和实现接口的选项,这可以帮助开发人员编写更具可读性的代码。
从 PHP 8.1 开始,该语言放宽了对初始化表达式中新表达式的限制,并允许它们在参数默认值、属性参数、静态变量初始值设定项和全局常量中使用。
该更新还包括“第一级只读属性”,允许开发人员“直接公开公共只读属性,而不必担心类变量被外部修改破坏”。它只能初始化一次,并且只能在声明它的范围内初始化,否则该属性将导致抛出异常。
辅助函数永远不会返回值,但可以引发异常或终止请求。开发人员始终可以通过声明具有新返回类型的函数(使用 never 关键字)来与静态分析器共享此信息。如果函数的输入具有多种类型,则可以通过结点类型运行该函数。
想要查看特定数组中的所有键是否从 0 开始并且是连续整数的程序员可以使用像 array_is_list 这样的新函数来执行此操作。不再禁用将字符串键解压到数组中。
其他改进包括 fsync 的 PHP 核心实现、一种测试常量是否有限的方法以及 Fiber 的引入。
这有点像在 Ruby 中,PHP Fibers 可用于创建非阻塞执行上下文,尽管以前版本的 PHP 已经拥有用于编写异步 PHP 代码的库和框架(如 Swoole)。
PHP 8.1 有一个小的弃用列表,您可以在 PHP wiki 上查看。特别是,将 null 传递给不可为 null 的标量参数或将不兼容的 float 隐式转换为 int 现在将导致警告错误。
PHP 8.1 此版本是在 PHP 基金会发布公告几天后发布的。
PHP 基金会是一个非营利组织。它的目的是通过确保 PHP 贡献者获得报酬来确保语言的持续发展 - 但“当前的 RFC 流程不会改变,语言决策将始终留给内部 PHP 社区”。
这一举措已经讨论了一段时间,但在主要贡献者之一 Nikita 决定放弃 PHP 核心开发的全职角色,专注于 LLVM 基础设施项目后,才正式启动。
PHP 基金会的创始成员包括 Acquia、Automattic、Craft CMS、JetBrains、Laravel、PrestaShop、Private Packagist、Symfony、Todeways 和 Zend。 作者:导演
版权声明
本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。