Hhvm: массивы не допускаются в константах класса - PullRequest
0 голосов
/ 04 февраля 2019

У меня есть php-скрипт, который работает нормально на моем локальном компьютере (MAC High Sierra 10.13.6, php версия 7.1.16) с использованием php file.php ...

hhvm --version дает HipHop VM 3.11.0 (rel)

Когда я бегу от бродяги (ччвм), он жалуется 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 голосов
/ 04 февраля 2019

Вы не можете использовать массивы в качестве констант класса, пока я не верю 3.19, я знаю, что это работает с HHVM 3.19.2, но могло бы быть немного раньше.Если вы обновите HHVM до последней (или хотя бы более новой) версии, она будет работать.

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

Примечательные изменения включают в себя:

ConstПоддержка массивов.

...