$obj 1->obj2()['something'];仅适用于本地主机


$obj1->obj2()['something'];works only on localhost

这是我正在尝试做的事情的一个例子:

<?php echo $Main->GetInfo()['Players'] . '/' . $Main->GetInfo()['MaxPlayers']; ?>

在本地主机上,这非常有效。但是,当我将其上传到Web服务器时,我收到以下消息:

Parse error: syntax error, unexpected '[', expecting ',' or ';' in /usr/www/.../header.php on line 111

为什么会这样?我无法将GetInfo()更改为$GetInfo,因为它将返回未定义。

在本地主机中,您使用的是 PHP 5.4,在您的服务器中,版本为 5.3 或更低,因此您不能使用该语法。

更多信息: http://php.net/manual/en/migration54.new-features.php

在 PHP 5.3 中,您应该使用:

<?php
$info = $Main->GetInfo();
echo $info['Players'] . '/' . $info['MaxPlayers'];
?>