新特性预加载预加载是PHP核心的一个惊人的补充,可以带来一些重大的性能改进。简而言之:如果您今天使用框架,则必须在每次请求时加载并重新编译其文件。预加载允许服务器在启动时将PHP文件加载到内存中,并使它们永久可用于所有后续请求。当然,性能提升是有代价的:如果预加载文件的来源发生变化,则必须重新启动服务器。设置强类型类变量类型可以提前声明:classA{publicstring$name;公共富$foo;复制代码更新07-01:截至目前,type属性已合并,因此确认适用于PHP7.4。改进类型差异我过去写过关于PHP类型系统的文章,所以很高兴看到PHP核心的一些实际改进。类型差异是一个值得单独发表博文的话题;简而言之:您将能够使用协变返回类型...functioncovariantReturnTypes():ChildType{/*…*/}}复制代码和回调参数){/*...*/}}更新14-01:RFC目前正处于投票阶段,但看起来它将毫无问题地通过。ForeignFunctionInterfaceForeignFunctionInterface,简称FFI,允许从用户态调用C代码。这意味着PHP扩展可以用纯PHP编写。应该指出,这是一个复杂的主题。您仍然需要C的知识才能正确使用此功能。空融合赋值运算符而不是这样做:$data['date']=$data['date']??新的日期时间();复制代码你可以这样做:$data['date']??=newDateTime();语言:CopyCodeUpdate22-01:此函数现已合并到PHP7.4中。获得更多利润从技术上讲,这不是与PHP7.4相关的更新,但绝对值得一提。RFC的投票规则已更改:它们始终需要2/3多数才能通过。反射引用像Symfony的vardumper这样的库在很大程度上依赖于反射API来可靠地转储变量。以前,没有对引用的适当反射支持,导致这些库依赖hack来检测引用。PHP7.4添加了ReflectionReference类来解决这个问题。更新02-14:RFC通过,PHP7.4确认更改。添加mb_str_split此函数提供与str_split相同的功能,但用于多字节字符串。ext-hashalwaysenabled正如标题所说,这个扩展现在可以在所有PHP版本中永久安装。默认情况下不启用PEAR由于不再维护PEAR,核心团队决定在PHP7.4中删除其默认安装。密码哈希注册表对哈希库的使用方式进行了内部更改,以便用户可以更轻松地使用它们。已弃用ext/wwdx这种数据交换格式从未标准化,现在已弃用其扩展名。在升级带有向后不兼容更改的PHP版本时,您应该始终查看完整的升级文档。以下是一些突出显示的向后不兼容的更改:在没有父类的类中引用父类::将生成编译时错误而不是运行时错误。在DateTime或DateTimeImmutable实例上调用var_dump将不再在对象上留下可访问的属性。openssl_random_pseudo_bytes将在错误情况下抛出异常。尝试序列化PDO或PDOStatement实例将生成异常而不是PDOException。在ArrayObject实例上调用get_object_vars()将返回ArrayObject本身的属性,而不是包装器数组或对象的值。请注意,(数组)转换不受影响。
