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

标签 php mysql sql arrays variables

<分区>

Possible Duplicate:
Access array returned by a function in php

代码:

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

报错:

Parse error: syntax error, unexpected '[' in index.php on line 117

同样适用于:

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

这段代码:

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

工作正常。

这是怎么回事?

最佳答案

这不仅仅是 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];

关于php - 为什么我不能索引 mysql 返回的数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10568505/

相关文章:

mysql - 使用 JSF 从 MySQL 中删除行

sql - 如何在 SQL 中使用集合?

php - 2 连接 MYSQL 并限制 1

php - 如何定义用于查找数据库表的 ActiveRecord,以便它与枚举常量一样有用?

php - 如何在 php 或 Laravel 中将 Excel 工作表图像上传到数据库

php - 使用基于 id (cdid) 的 sql 连接查询从 3 个表中获取数据

php - Symfony2 - 如何将嵌套记录和递归函数实现到实体字段或 Twig 布局中?

MySQL创建表和更改(添加)表查询

mysql - Ruby on Rails,保存!返回 true 但数据库行未更改(仅在生产中;在开发中工作正常)

sql - 这条sql语句是做什么的? (mysql)