php7.4,php7.4都要来了

新特性

预加载

预加载是PHP核心的一个惊人的补充,可以带来一些重大的性能改进。

简而言之:如果您今天使用的是框架,则必须在每次请求时加载和重新编译其文件。 预加载允许服务器在启动时在内存中加载PHP文件,并使它们永久可用于所有后续请求。

性能提升当然需要付出代价:如果预加载文件的来源发生变化,则必须重新启动服务器。

设置强类型

类变量类型可以提前声明:

class A

{

public string $name;

public Foo $foo;

}

复制代码更新07-01:截至目前,已合并类型属性,因此已确认PHP 7.4。

改进类型差别

我过去曾写过 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)

{ /* … */ }

}

更新14-01:RFC目前处于投票阶段,但看起来它会毫无问题地通过。

外部函数接口

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

应该指出,这是一个复杂的主题。 您仍然需要 C 的知识才能正确使用此功能。

空融合分配运算符

而不是这样做:

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

复制代码你可以这样做:

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

复制代码更新22-01:此功能现在在PHP 7.4中合并。

获取更多利润

从技术上讲,这不是与 PHP 7.4 相关的更新,但它绝对值得一提。 RFC 的投票规则已经改变:它们总是需要 2/3 的多数才能通过。

反射引用

像 Symfony 的 var 转储程序这样的库很大程度上依赖于反射 AP I来可靠地转储变量。 以前,没有对引用的适当反射支持,导致这些库依赖 hack 来检测引用。

PHP 7.4 添加了 ReflectionReference 类来解决这个问题。

更新02-14:RFC已通过,PHP 7.4已确认更改。

mb_str_split 的添加

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

ext-hash 始终启用

正如标题所说,此扩展现在可在所有 PHP 版本中安装永久使用。

PEAR 默认情况下不启用

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

密码哈希注册表

对如何使用散列库进行内部更改,以便用户可以更轻松地使用它们。

弃用 ext/wwdx

此数据交换格式从未标准化,现在不推荐使用其扩展名。

不向后兼容的变化

升级 PHP 版本时,您应该始终查看完整的 UPGRADING 文档。

以下是一些突出显示的向后不兼容的更改:

在没有父级的类中引用 parent :: 将生成编译时错误而不是运行时错误。

在 DateTime 或 DateTimeImmutable 实例上调用var_dump 将不再在对象上留下可访问的属性。

openssl_random_pseudo_bytes 将在错误情况下抛出异常。

尝试序列化 PDO 或 PDOStatement 实例将生成异常而不是 PDOException 。

在 ArrayObject 实例上调用 get_object_vars() 将返回 ArrayObject 本身的属性,而不是包装数组或对象的值。 请注意, (array) 强制转换不受影响。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值