php的特性-三分钟了解PHP7.4新特性

2023-09-01 0 3,214 百度已收录

PHP7.4 中的新功能短闭包 RFC

短闭包使得一行书写更加简洁。

array_map(function (User $user) { 
    return $user->id; 
}, $users)

登录复制

array_map(fn(User $user) => $user->id, $users)

登录复制

关于短暂关闭的一些注意事项:

您可以在这里深入阅读它们。

类型属性 RFC

类属性可以暗示类型:

class A
{
    public string $name;
    public Foo $foo;
}

登录后复制

php的特性-三分钟了解PHP7.4新特性

改进的类型差异 RFC

我之前写过有关 PHP 类型系统的文章,因此很高兴听到 PHP 的某些核心已得到改进。

类型差异是一个值得写一篇博客文章的话题; 简而言之:您只能使用协变量返回类型。 。 。

class ParentType {}
class ChildType extends ParentType {}
class A
{
    public function covariantReturnTypes(): ParentType
    { /* … */ }
}
class B extends A
{
    public function covariantReturnTypes(): ChildType
    { /* … */ }
}

登录后复制

。 。 。 和逆变量。

class A
{
    public function contraVariantArguments(ChildType $type)
    { /* … */ }
}
class B extends A
{
    public function contraVariantArguments(ParentType $type)
    { /* … */ }
}

登录后复制

空合并运算符 RFC

不再需要这样做:

$data['date'] = $data['date'] ?? new DateTime();

登录后复制

你可以这样做:

$data['date'] ??= new DateTime();

登录后复制

链表扩展运算符 RFC

现在您可以在链接列表上使用展开运算符:

$arrayA = [1, 2, 3];
$arrayB = [4, 5];
$result = [0, ...$arrayA, ...$arrayB, 6 ,7];
// [0, 1, 2, 3, 4, 5, 6, 7]

登录后复制

请注意,这仅适用于带有数字键的字段。

外部功能套接字 RFC

外部函数接口(简称 FFI)允许从用户态调用 C 代码。 这意味着 PHP 扩展可以用纯 PHP 编写。

应该强调的是,这是一个复杂的话题。 您始终需要了解 C 语言才能正确使用此功能。

加载 RFC

加载是 PHP 核心中一项令人兴奋的新功能,可以带来不可预测的性能改进。

简而言之:如果您现在使用框架,则必须根据每个请求加载并重新编译其文件。 预加载允许服务器在启动时将 PHP 文件加载到显存中,并使它们持久用于所有后续请求(只要水未打开)。

性能的提升其实是有代价的:如果预加载文件的源文件发生变化,则必须重新启动服务器(如果您对此部分有异议,请查看RFC了解详情)

自定义对象序列化 RFC

RFC 放弃了两个新的技巧:__serialize 和 __unserialize。 RFC 中已经讨论了该方法与 __sleep 和 __wakeup 之间的区别。

连接优先级 RFC

假设您编写如下内容:

echo "sum: " . $a + $b;

登录后复制

php的特性-三分钟了解PHP7.4新特性

PHP 之前会这样编译:

echo ("sum: " . $a) + $b;

登录后复制

PHP8将使其编译如下:

echo "sum :" . ($a + $b);

登录后复制

PHP7.4 当有 '.' 时会提示弃用警告在未括在括号中的“+”或“-”表达式之前。

RFC 投票流程改进

从技术上讲,这不是与 PHP7.4 相关的更新php的特性,但值得一提的是:RFC 的投票规则早已改变。

对 RFC 引用的反思

像 Symfony 的 vardumper 这样的库严重依赖反射 API 来可靠地轮询变量。 曾经,没有为引用提供适当的反射支持,导致此类库依赖黑客来测量反射。

PHP7.4添加了ReflectionReference类来解决这个问题。

添加 mb_str_split 函数 RFC

此函数提供与 str_split 多字节字符串相同的功能。

永久支持ext-hashRFC

正如标题所示,现在所有 PHP 安装都永久支持此扩展。

默认情况下未启用 PEAREXTERNALS

由于 PEAR 不再支持维护,核心团队决定在 PHP 7.4 中删除其默认安装。

密码哈希注册表 RFC

对哈希库的使用方式进行了内部更改,以便用户可以更轻松地使用它们。

弃用 ext/wwdxRFC

这种数据交换格式从未标准化php的特性,并且该扩展现已被弃用。

PHP 短标签已弃用 RFC

短标签

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悟空资源网 php php的特性-三分钟了解PHP7.4新特性 https://www.wkzy.net/game/187384.html

常见问题

相关文章

官方客服团队

为您解决烦忧 - 24小时在线 专业服务