带你深入了解 PHP 8.4 的属性钩子
属性挂钩允许你自定义类属性的 getter 和 setter 逻辑,而无需编写单独的 getter 和 setter 方法。这意味着你可以直接在属性声明中定义逻辑,这样你就可以直接访问属性(如 $user->firstName),而无调用方法(如 $user->getFirstName() 和 $user->setFirstName())。
PHP 8.4.0 Alpha 4 可用于测试
PHP 团队发布了 PHP 8.4.0 的第二个测试版本 Alpha 4。这延续了 PHP 8.4 的发布周期,其大致轮廓在 PHP Wiki 中指定。有关 PHP 8.4.0 Alpha 4 的源代码下载,请访问下载页面。请仔细测试此版本,并在错误报告系统中提交发现的任何问题。请不要在生产中使用此版本,这是一个早期测试版本。有关新功能和其他更改的更多信息,...
一些新的数组函数正在加入 PHP 8.4
PHP 8.4 仍在开发中,到目前为止已经有了一系列新功能和改进。新功能不断出现,其中一个最近出现的功能是添加了新的数组方法。有一个 RFC(仍处于投票阶段),它建议添加这些新方法,这些方法本质上与检查数组中是否存在与特定条件匹配的元素有关。新方法是:array_find、array_find_key、array_any、array_all、array_find 方...
PHP 8.4 中是否实现不带额外括号的类实例化?
略去 new 表达式周围括号的 RFC 可能会出现在 PHP 8.4 中。该 RFC 目前处于投票阶段,有 21 张“赞成”票和 3 张“反对”票。投票将于 5 月 24 日结束,因此 ⅔ 的投票仍有可能失败,但乐观地说,看起来它正朝着正确的方向前进。自从引入了实例化期间的成员访问,你必须将 new MyClass() 调用封装在括号中,否则将出现解析错误。...
PHP 8.4: OpenSSL: OpenSSL 版本最低要求提升到 1.1.1
PHP OpenSSL 扩展为 PHP 提供了加密、身份验证、密钥交换、密码哈希和通用哈希功能。OpenSSL 扩展使用 OpenSSL 库来提供此功能。在 PHP 8.4 及更高版本上,构建 OpenSSL 扩展的最低要求从 1.0.1 增加到 1.1.1。该扩展也继续与 OpenSSL 兼容。请注意,OpenSSL 1.1.1(2018 年 9 月发布)...
属性钩子在 PHP 8.4 中越来越接近现实
属性钩子(Property Hooks)的 RFC 通过了一个重要的里程碑,获得了压倒性的 34 张赞成票和 1 张反对票。这远远高于通过所需的 ⅔ 多数票。PHP 中的属性钩子是什么?以下是 RFC 的提案摘要:开发人员经常使用方法来包装和保护对对象属性的访问。对于这种逻辑,有几种非常常见的模式,在实践中,重复实现这些模式可能很繁琐。或者,开发人员可以使用...
PHP 8.4: 隐式 nullable 参数声明弃用
PHP 8.4 中的重要弃用这是 PHP 8.4 中重要的弃用,由于 PHP 8.4 中的这一更新,旧版 PHP 应用可能会出现弃用通知。PHP 支持为函数参数、返回值、类属性、类常量和枚举声明类型。PHP 是一种动态类型语言,有着几十年的历史,多年来得到了一些改进和特性。随着标量类型(PHP 7.0)、 nullable 的类型(7.1)、类型化属性(7....
PHP 8.4: 新增 http_(get|clear)_last_response_headers 函数
PHP 提供了一个 HTTP 包装器,可以使用标准文件系统函数访问远程 HTTP 内容。例如,file_get_contents() 函数可以获取远程 HTTP 资源以及文件系统上的常规文件。在成功建立远程连接后,HTTP 包装器填充一个名为 $http_response_header 的本地变量。此变量是在局部作用域中填充的,它不是超全局变量。这是一个历史...
PHP 8.4: 新增 mb_ucfirst 和 mb_lcfirst 函数
PHP 提供 ucfirst 和 lcfirst 函数来更改给定字符串中第一个字符的大小写。mbstring 扩展为 PHP 的大多数标准字符串函数提供了多字节安全函数。然而,在 PHP8.4 之前,mbstring 扩展没有为 ucfirst 和 lcfirst 函数提供多字节安全的对应函数。在 PHP 8.4 中,mbstring 扩展添加了 mb_uc...
PHP 8.4: Curl: libcurl 最小版本需求增加到 7.61.0
Curl 扩展在 PHP 中公开了 libcurl 功能。虽然可以使用任何支持的 libcurl 版本编译 Curl 扩展,但该扩展需要特定的最低 libcurl 版本。这使得扩展更容易确保某些功能和 API 始终可用。在 PHP 8.4 之前,Curl 扩展要求 libcurl 版本在 7.29.0(2013 年发布)以上。而 PHP 8.4 及其之后的版...