为什么我不能索引mysql返回的数组?

时间:2012-05-13 00:38:03

标签: php mysql sql arrays variables

  

可能重复:
  Access array returned by a function in php

代码:

$cnt = mysql_fetch_row(mysql_query("SELECT FOUND_ROWS()"))[0]

给出错误:

  

解析错误:语法错误,意外'['in   第117行的index.php

同样的:

$cnt = (mysql_fetch_row(mysql_query("SELECT FOUND_ROWS()")))[0]

此代码:

$cnt = mysql_fetch_row(mysql_query("SELECT FOUND_ROWS()"));
$cnt = $cnt[0];

工作正常。

这里发生了什么?

1 个答案:

答案 0 :(得分:4)

这不仅仅是mysql_query的问题 - 相反,它是PHP< 5.4处理括号表示法的特殊情况。以下will fail也是:

function get_array() {
  return array('foo', 'bar');
}

echo get_array()[0];

但是,正如您所观察到的那样,在尝试检索元素works fine之前设置结果:

$arr = get_array();
echo $arr[0];