0

我在我的计算机上本地安装了 Apache/PHP/MySQL 以快速测试内容。我目前正在做的一件事是一个六边形图表,用于通过 GD 库动态创建的游戏中的统计数据。

在我的笔记本电脑上,一切正常,因为我得到了一个不错的结果。 图像1

但是,当我将它部署到我购买的服务器上时,我收到了一个语法错误:

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

4

1 回答 1

1

在 PHP < 5.4 中,您无法立即访问结果的“索引”,这就是为什么第二段代码无法在您的服务器上运行的原因

于 2013-03-22T16:21:43.950 回答