php-function()[]语法

php-function()[]语法,php,apache,syntax,wamp,brackets,Php,Apache,Syntax,Wamp,Brackets,我在php中有一个奇怪的语法问题 在我的代码中的某个时刻,我执行了一个mysql查询(只返回一行和一个值),我通过以下方式得到查询结果: $myvar = mysql_fetch_assoc($result)["something"]; $result当然是mysql结果。 无论是在本地还是在现场,它都可以正常工作。 然而,当我的同事将网站的最新版本用于他自己的一些本地测试时,他得到了以下错误: Parse Error: syntax error, unexpected '[' in C:\w

我在php中有一个奇怪的语法问题

在我的代码中的某个时刻,我执行了一个mysql查询(只返回一行和一个值),我通过以下方式得到查询结果:

$myvar = mysql_fetch_assoc($result)["something"];
$result当然是mysql结果。 无论是在本地还是在现场,它都可以正常工作。 然而,当我的同事将网站的最新版本用于他自己的一些本地测试时,他得到了以下错误:

Parse Error: syntax error, unexpected '[' in C:\wamp\www\mySite\ref\myFile.php on line 33
第33行是我定义$myvar的那一行。 他通过以下操作修复了它:

$myvar = mysql_fetch_assoc($result);
$myvar = $manif["something"];
对我来说,问题显然来自wamp(我个人运行的是apache服务器),所以我的问题是“为什么?”

<>我最近才进入网络开发(到现在为止我还是个C++开发人员),我用了一段时间的语法。这是坏习惯吗

为什么wamp返回一个错误而不是apache?每个服务器都有自己的php解析器吗


谢谢。

函数数组解引用(例如
foo()[0]
)已在PHP5.4中引入。检查您的php版本。

自从PHP5.4以来,您就可以随心所欲了。如果您的同事使用旧版本的PHP,这就是它不起作用的原因

如果您使用的是5.3之前的PHP,则应使用临时变量,例如:

$r = mysql_fetch_assoc($result);

$myvar = $r['something'];

wamp返回一个错误,但不是apache-wamp中的A代表APACHEit取决于php版本$myvar=mysql_fetch_assoc($result)[“某物”];所以使用$mayvar=mysql\u fetch\u assoc($result)$mayvar=$mayvar[“某物”];用于在不同的php版本中使用它