在我的本地主机[PHP版本5.5.9-1ubuntu4.5]上,以下代码正常工作:
array($userName => ['score' => $score]);
同时,该代码也在运行:
$this->Auth->user()['id']
但在生产服务器[PHP版本5.3.3-7 squeeze23]上,在这两种情况下,我都有一个错误:
错误:致命错误(4):语法错误,意外的'['
怎么回事啊?我如何用最简单的方法修复它?(因为在项目中改变所有数组是非常不可行的,我甚至不知道如何管理第二种情况下与Auth...)
数组的方括号语法是在PHPV5.4中引入的。函数或方法返回值的使用也是如此
第一个原因是用于实例化数组的新的[]
语法仅适用于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 --] 为了使用这