当前位置: 首页 > 知识库问答 >
问题:

php方括号语法错误[重复]

松阳泽
2023-03-14

在我的本地主机[PHP版本5.5.9-1ubuntu4.5]上,以下代码正常工作:

array($userName => ['score' => $score]);

同时,该代码也在运行:

$this->Auth->user()['id']

但在生产服务器[PHP版本5.3.3-7 squeeze23]上,在这两种情况下,我都有一个错误:

错误:致命错误(4):语法错误,意外的'['

怎么回事啊?我如何用最简单的方法修复它?(因为在项目中改变所有数组是非常不可行的,我甚至不知道如何管理第二种情况下与Auth...)

共有3个答案

幸阳波
2023-03-14

数组的方括号语法是在PHPV5.4中引入的。函数或方法返回值的使用也是如此

应安国
2023-03-14

PHP版本5.4之前不支持该语法

你可以在这里看到:

http://php.net/manual/en/language.types.array.php

苏品
2023-03-14

第一个原因是用于实例化数组的新的[]语法仅适用于5.4及更高版本。因此,将其替换为array()

// 5.4+ only:
array($userName => ['score' => $score]);
// 5.3 (and earlier) and 5.4+
array($userName => array('score' => $score));

第二个是不同的5.4特性,即访问从函数返回的数组,其中应使用临时变量:

// 5.4+ only:
$this->Auth->user()['id']
// 5.3 (and earlier) and 5.4+:
$result = $this->Auth->user()
$result[id]

或者,作为首选,将您的生产服务器升级到一个PHP版本,该版本比您正在使用的已有四年或五年历史的版本要现代一些。为了节省更多这些麻烦,您要么需要这样做,要么在5.3中开始本地开发。(如果您需要执行后一种操作,我会研究虚拟化您的开发设置,这样您就可以针对较旧的生产系统在虚拟箱中开发5.3版。)

 类似资料:
  • 问题内容: 这个问题不太可能对将来的访客有所帮助;它仅与较小的地理区域,特定的时间段或极为狭窄的情况(通常不适用于Internet的全球受众)有关。要获得使该问题更广泛适用的帮助,请访问帮助中心。 7年前关闭。 我有一个返回数组的函数。我还有另一个仅返回第一行的函数,但是由于某种原因,它使我使用了中间变量,即失败了: 。。。与: 解析错误:语法错误,第10行的util.php中出现意外的[[] 但

  • 我有一个返回数组的函数。我有另一个函数,它只返回第一行,但出于某种原因,它让我使用一个中间变量,即失败:

  • 我一直试图搜集一些推特的数据,但每次运行此代码时,都会出现错误:调用“print”时缺少括号。 有人能帮我解决这个问题吗? 感谢您的时间:)

  • 希洛!我试图执行一个mysql查询,但我遇到了上面的问题。 这是我的代码: 它的结果是: 我发现了一些类似的问题,但我想不出解决办法。有人能帮我吗?

  • 我是一个游戏玩家,他决定制作一些其他人可以玩的基本游戏。我对编码很陌生,对它有最基本的了解。我和我的表弟正在尝试用Python 3.6.0制作一个基于文本的游戏。我们在互联网上搜索了我们问题的答案,但什么也找不到。代码如下: 当试图运行模块进行测试时,我们会收到一个错误,上面写着: msgstr"调用打印时缺少括号" 由于我们对编码有如此基本的了解,并且在google上找不到答案,我们希望有人能帮

  • Note: 这个特性从 FreeMarker 2.3.4 版本后才存在。 FreeMarker支持一个替换的语法。就是在FreeMarker的指令和注释中用 [ 和 ] 来代替 < 和 >,例如下面这个例子: 调用预定义指令:[#list animals as animal]...[/#list] 调用自定义指令:[@myMacro /] 注释:[#-- the comment --] 为了使用这