我在我的计算机上本地安装了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答案 0 :(得分:1)
您无法立即访问PHP中的结果“索引”&lt; 5.4,这就是为什么第二段代码在你的服务器上不起作用的原因