Hhvm:类常量中不允许使用数组

时间:2019-02-04 18:37:49

标签: php arrays constants hhvm

我有一个使用php file.php ...

在本地(MAC High Sierra 10.13.6,php版本7.1.16)上可以正常运行的php脚本。

hhvm --version给出HipHop VM 3.11.0 (rel)

当我从无业游民(hhvm)运行时,它抱怨Fatal error: Arrays are not allowed in class constants in certainfile.php on line xxx。使用hhvm file.php ...

在我的文件中,我的const定义为:

class Lalala { const AB_C = array(A::a, B::b,...); function xyz {...use self::AB_C ...} }

我试图将其更改为 define("AB_C", array(A::a, B::b,...));,但它甚至无法编译时出现语法错误。

请问如何在这里声明常量数组? 谢谢。


define("AB_C", serialize(array(A::a, B::b,...)));也因相同的语法错误而失败

define("AB_C", jsonencode(array(A::a, B::b,...)));也因相同的语法错误而失败

1 个答案:

答案 0 :(得分:3)

在我相信3.19之前,您不能将数组用作类常量,我知道它从HHVM 3.19.2开始可以使用,但可能早一点了。如果将HHVM更新到最新(或至少是最新)版本,它将起作用。

https://hhvm.com/blog/2017/04/13/hhvm-3-19.html

  

值得注意的更改包括:

     

常量数组支持。