解析服务器上的错误,适用于localhost

时间:2014-06-23 08:18:26

标签: php

我有几行代码在我的本地主机上使用PHP版本5.4.19运行良好,但似乎无法在运行5.3.3的服务器上运行。在我的服务器上,我收到以下错误:

  

解析错误:语法错误,意外' [',期待','或';'在   第147行/var/www/html/newpage.php

似乎给出错误的代码是:

    146.    <a href=faq.php?id=<?php echo $systemId ?> class="menuitem">FAQ</a>
    147.    <a href="<?php echo getLink($systemId,'map1')['link'];?>" class="menuitem">Test</a>
    148.    <a href="<?php echo getLink($systemId,'map2')['link'];?>" class="menuitem">Test1</a>
    149.    <a href="<?php echo getLink($systemId,'map3')['link'];?>" class="menuitem">Test2</a>
    150.    <a href="<?php echo getLink($systemId,'list')['link'];?>" class="menuitem">Test3</a>
    151.    <a href="<?php echo getLink($systemId,'map4')['link'];?>" class="menuitem">Test4</a>
    152.    <a href="index.php" class="menuitem">Frontpage</a>

上面代码(getLink)中调用的函数如下所示:

function getLink($id, $category){
    $category = mysql_real_escape_string($category);
    $id = mysql_real_escape_string($id);
    $result = mysql_query("SELECT * FROM `links` WHERE `category` = '$category' AND `text_id` = '$id'");
    return mysql_fetch_assoc($result);
}

函数getLink应该可以正常运行并填充数据库。我试图在getLink上做一些var_dump()但是Parse错误似乎覆盖了那段代码?

任何人都知道错误可能在哪里?

2 个答案:

答案 0 :(得分:0)

您需要PHP 5.4或更高

Function array dereferencing has been added, e.g. foo()[0].

答案 1 :(得分:0)

您不能在PHP中直接使用<?php echo getLink($systemId,'map1')['link'];?>&lt; 5.4。

您必须执行类似的操作,或者升级服务器的PHP版本:

<?php $l = getLink($systemId,'map1'); echo $l['link']; ?>