PHP 8.4 重磅发布了

news/2024/11/23 21:39:21/

文章精选推荐

1 JetBrains Ai assistant 编程工具让你的工作效率翻倍
2 Extra Icons:JetBrains IDE的图标增强神器
3 IDEA插件推荐-SequenceDiagram,自动生成时序图
4 BashSupport Pro 这个ides插件主要是用来干嘛的 ?
5 IDEA必装的插件:Spring Boot Helper的使用与功能特点
6 Ai assistant ,又是一个写代码神器

文章正文

PHP 8.4 提前发布!原计划于2024年11月21日发布的PHP 8.4.0,惊喜地提前至11月19日正式上线,紧随其后的是11月20日发布的PHP 8.4.1。如此高效的发布节奏令人瞩目。

本文将深入探讨PHP 8.4的新特性,以及它为何值得全球开发者关注和兴奋。

最新动态及其重要性

1、Property Hooks:你最喜欢的新功能
PHP 8.4 的一大亮点是属性钩子 (Property Hooks)。它提供了一种更优雅的方式来实现 gettersetter 方法,让您无需编写冗余代码即可自定义类属性的访问和修改行为。

例子:

class MagicClass {private array $data = [];public function __get($key) {return $this->data[$key] ?? null;}public function __set($key, $value) {$this->data[$key] = $value;}
}$obj = new MagicClass();
$obj->name = "PHP";
echo $obj->name; // 输出: PHP

2、不对称可见性
PHP 8.4 的非对称可见性特性允许为 gettersetter 方法设置不同的访问权限。例如,您可以将属性的读取权限设置为 public,同时保持写入权限为 private

例子:

class ReadOnlyProperty {public string $data get;private string $data set;
}

3、不使用括号的方法链
告别方法链中多余的括号!PHP 8.4 允许您在直接调用新实例化对象的方法时省略括号,从而简化方法链的书写。

例子:

$result = new MyClass()->firstMethod()->secondMethod();

无需多余的 (new MyClass()),代码更简洁、易读,也更省事。

4、新的数组函数
PHP 8.4 新增了备受期待的数组函数,例如 array_find()array_find_key(),显著简化了常见的数组操作。
例子:

$numbers = [1, 2, 3, 4];
$found = array_find($numbers, fn($n) => $n > 2);echo $found; // 输出: 3

这些函数使数组更加易于使用,使您免于复杂循环的困扰。

PHP 8.4 包含多项底层改进:

  • 增强的 HTML5 支持: 新的 \Dom\HTMLDocument 类可准确解析 HTML5,更好地适应现代 Web 开发需求。
  • 改进的多字节字符串函数: 新增的 mb_ucfirst() 函数简化了非拉丁脚本的使用。
  • 更清晰的空值处理: 弃用隐式可空参数,强制使用更清晰、明确的函数签名。

为什么 PHP 8.4 值得大力宣传

PHP 8.4 不仅仅是新功能的集合,更代表着 PHP 向更现代化、高效和开发者友好的方向迈进的一大步。无论您是使用 Laravel、WordPress,还是其他框架或 API,PHP 8.4 都能为您带来诸多提升。

为何提前发布?

提前发布的原因不得而知,或许是 PHP 团队迫不及待地想与我们分享这份喜悦,也或许是为了让我们在周末前有时间体验新特性。无论如何,PHP 8.4 已正式发布,并且非常值得期待。


http://www.ppmy.cn/news/1549372.html

相关文章

设计模式之 责任链模式

责任链模式(Chain of Responsibility Pattern)是一种行为型设计模式,旨在将多个处理对象通过链式结构连接起来,形成一条处理请求的链条。每个处理对象都有机会处理请求,或者将请求传递给链中的下一个对象。这样&#x…

蓝桥杯某C语言算法题解决方案(质因数分解)

蓝桥杯原题:将一个正整数分解质因数例如:输入90,打印出90 2 * 3 * 3 * 5。 声明:该题目是否为蓝桥杯原题未知,我是从CSDN上面查到的,仅对该题目进行解决。 这个题与我之前发表过的一些关于检验一个数字是…

iOS无人直播虚拟视频实用版

iOS无人直播虚拟视频实用版 资源描述 本资源提供了一个名为“iOS无人直播虚拟视频实用版”的资源文件,该文件允许用户在iOS设备上实现无人直播功能,通过虚拟视频技术播放指定的视频内容。该资源文件特别适用于需要进行刷脸验证的场景,用户可…

windows已建立威胁IP排查

在应急响应的时候,需要筛选出服务器建立连接的进程、PID,此代码可满足该需求实现共计2步 首先windos netstat-ano > all.txt, 上传至pycharm路径 第一步获取服务器建立连接的ip import re# 从文件读取 netstat 输出 def read_netstat_f…

【Flask+Gunicorn+Nginx】部署目标检测模型API完整解决方案

【Ubuntu 22.04FlaskGunicornNginx】部署目标检测模型API完整解决方案 文章目录 1. 搭建深度学习环境1.1 下载Anaconda1.2 打包环境1.3 创建虚拟环境1.4 报错 2. 安装flask3. 安装gunicorn4. 安装Nginx4.1 安装前置依赖4.2 安装nginx4.3 常用命令 5. NginxGunicornFlask5.1 ng…

干货分享|分布式数据科学工具 Xorbits 的使用

本章介绍分布式数据科学工具 Xorbits 。 1 Xorbits Data Xorbits Data 是一个面向数据科学的分布式计算框架,功能类似于 Dask 和 Modin,用于加速 Pandas DataFrame 和 NumPy。Xorbits Data 通过切分大数据集并利用 Pandas 或 NumPy 执行操作。其底层采…

java Queue 详解

Java Queue 详解 Queue 是 Java 集合框架中用于实现 队列 数据结构的接口,位于 java.util 包中。队列是一种 先进先出(FIFO) 的数据结构,元素按照插入的顺序依次出队。 1. Queue 的基本特性 FIFO(First-In-First-Out&…

鸿蒙学习高效开发与测试-应用程序框架和HarmonyOS SDK(3)

文章目录 1、应用程序框架1、规范化后台进程管理2、原生支持分布式3、支持多设备的统一窗口管理4、 组件共享及面向对象5、逻辑与界面解耦6、灵活扩展机制2、HarmonyOS SDK1、 开放能力 Kit2、开放能力的检索和使用3、 方舟工具链4、前端编译器架构1、应用程序框架 应 用 程 序…