PHP 8.2 的新增功能:新功能、弃用和错误修复
PHP 8.2 即将到来。其发布时间定于 11 月 24 日。
PHP 8.2 的唯一目的是让开发人员的生活更轻松。大多数更改简化了编码过程并弃用了一些旧功能。始终建议更新到最新版本的 PHP,以最大限度地提高网站的安全性并适应新的语法。
让我们看看 PHP 8.2 带来的所有更改,以便您可以在新版本最终发布时决定是否值得进行更改。
PHP 8.2 中的新功能
在本节中,我们将回顾 PHP 8.2 中引入的更改和新功能。
新的只读类
新的 readonly 类属性随版本 8.1 一起发布。 PHP 8.2 老挝电报数据 让它变得更好。现在,您将能够将整个类声明为只读。这样做会将该类的所有属性更改为 readonly 。 这不适用于动态属性 – 将它们声明为只读会引发错误。
声明类的方式过去是这样的:
class ReadOnlyClass
{
public readonly int $number,
public readonly int $anotherNumber
}
在 PHP 8.2 中,该过程已完全简化:
class ReadOnlyClass
{
public int $number,
public int $anotherNumber
}
请注意,无法声明以下 PHP 功能:
枚举,因为它们根本不能包含属性。
特征。
接口。
允许 true、null 和 false 作为独立类型
在 PHP 8.0 中,向用户引入了对 Union 类型的支持。您可以将类型声明为两个或多个类型的联合。尽管您可以使用 false 和 null 作为可能的类型,但不允许将它们用作独立类型。
在 PHP 8.2 中,可以使用 false 和 null 作为独立类型。通过这一补充,PHP 的类型系统将更具描述性,因为您将能够更精确地声明返回、参数和属性类型。
支持措辞敏感的参数值
PHP 允许用户跟踪程序中任意点的调用堆栈。如果您想调试应用程序并查看失败的原因,它非常有用。但是,某些堆栈跟踪包含您可能想要屏蔽的敏感信息。
PHP 8.2 将添加一个名为 SensitiveParameter 的新属性。防止每次应用程序出现问题时显示或记录敏感信息。实际上,它看起来像这样:新的 mysqli_execute_query 函数和 mysqli::execute_query 方法
PHP 8.2 引入了一种更简单的方法来处理参数化 MySQLi 查询。使用 mysqli_execute_query($sql, $params) 函数和 mysqli::execute_query 方法,您可以在同一函数中准备、绑定和执行查询。成功执行查询后,您将看到 mysqli_result 对象。
提议的 RFC 函数 如下所示:
foreach ($db->execute_query(‘SELECT * FROM user WHERE name LIKE ? AND type_id IN (?, ?)’, [$name, $type1, $type2]) as $row) {
print_r($row);
}
允许功能。
#utf8_encode() 和 utf8_decode() 函数
utf8_encode() 和 utf8_decode() 函数用于在 ISO-8859-1 和 UTF-8 编码 挑战者销售模式:您需要了解的一切 标准之间进行转换。由于缺乏错误消息、警告和有限的编码支持,PHP 8.2 将弃用这些功能,而 PHP 9.0 将完全排除它们。或者,用户将能够使用 iconv 或 intl 扩展来转换编码标准。
Mbstring – Base64、Uuencode、QPrint 和 HTML 实体编码
Mbstring 用于在各种字符编码标准之间进 阿尔及利亚领先 行转换,例 8.2 的新增功 如 UTF-8/16/32 和 ISO-8859-1。它还包括对 Base64、Quoted-Printable、Uuencode 和 HTML 实体的支持。
BASE64。
UUENCODE。
HTML 实体。
html(别名 HTML-ENTITIES)。
引用-可打印。
qprint(Quoted-Printable 的别名)。
部分支持的可调用对象
PHP 8.2 将弃用不支持 $callable() 模式的部分支持的可调用对象。