此版本有一个破坏性变化:
- 两次指定相同的 XHP 属性(<foo x =“ 1” x =“ 2” />)现在是语法错误
特性上,去年的更改无意间使解析器接受 XHP children
声明的任意类型,但是:
- XHP 类库仍然不支持此功能。
- 类型检查器不验证
children
。 - 这可能会导致无法令人满意的
children
声明,例如对未定义类型的引用。
目前正在更改类型检查器,以验证 XHP children
声明未引用未定义的类型;在 XHP children
声明的情况下,以下类型将被类型检查器视为有效:
- 区分大小写的特殊值
pcdata
、any
或empty
。 - XHP 类别名称,例如
%foo
。 - 定义的、非混淆的、非通用的 Hack 类型,例如类名、XHP 类名或接口。
此更改可能出现在在 4.41 版本中,详情查看更新说明:
https://hhvm.com/blog/2020/01/13/hhvm-4.40.html
HHVM 原本是由 Facebook 打造的 PHP 虚拟机,它通过将 PHP 代码动态翻译成原生机器码而大幅提高速度。HHVM 支持 PHP 和 PHP 方言 Hack 语言,但从 4.0 版本开始,仅支持 Hack 语言。