我在我的计算机上本地安装了 Apache/PHP/MySQL 以快速测试内容。我目前正在做的一件事是一个六边形图表,用于通过 GD 库动态创建的游戏中的统计数据。
在我的笔记本电脑上,一切正常,因为我得到了一个不错的结果。
但是,当我将它部署到我购买的服务器上时,我收到了一个语法错误:
Parse error: syntax error, unexpected '['
来自这个声明:
$hexstat = new CL2HexStatPoints(
CL2StatsRepository::GetClassesFromJson()[$id], <- *error here*
new CHexagon( CVector2::Create( constant("RADIUS"), constant("RADIUS") )
)
);
它似乎不喜欢那里的索引运算符。该函数本身解析一个 json 文件并返回一个对象数组,其中包含有关播放器类的属性。我已经通过使用 var_dump 确认它确实是一个数组。但是,如果我这样编程:
$array = CL2StatsRepository::GetClassesFromJson();
var_dump( $array[$id] ); // this is ok
var_dump( CL2StatsRepository::GetClassesFromJson()[$id] ); // this isn't
第一个语句可以,第二个语句不行。我工作电脑上的PHP版本是5.4.12,服务器上的PHP版本是5.3.22。我假设在版本之间涉及操作员的某些事情发生了变化,或者我可能需要更改一个设置。我还没有真正能够找到任何信息或者搜索,有没有人可以解释为什么会这样?非常感谢。
编辑:我已经修复了与旧 PHP 版本兼容的代码,所以从现在开始我会牢记这一点。如果有人有兴趣看到它真正起作用:http ://www.qzmpox.nl/l2/hexagon/hexagontest.php