使用[]时出现PHP解析错误

使用[]时出现PHP解析错误,php,Php,代码是 // Get singleton (first value from row with single value) static function singleton($arg, $params = false) { return pg_fetch_row(SQL($arg, $params))[0]; } 错误消息是 2014-02-19 12:54:23:(mod_fastcgi.c.2701)fastcgi stderr:PHP消息:PHP解析错误:语法错误,第69行/v

代码是

// Get singleton (first value from row with single value)
static function singleton($arg, $params = false) {
    return pg_fetch_row(SQL($arg, $params))[0];
}
错误消息是

2014-02-19 12:54:23:(mod_fastcgi.c.2701)fastcgi stderr:PHP消息:PHP解析错误:语法错误,第69行/var/www/blockexplorer.com/htdocs/includes/sql.inc中出现意外的“[”


我认为有一个配置可以修复它。

将函数的结果放入变量中

static function singleton($arg, $params = false) {
    $foo = pg_fetch_row(SQL($arg, $params));
    return $foo[0];
}

将函数的结果放入变量中

static function singleton($arg, $params = false) {
    $foo = pg_fetch_row(SQL($arg, $params));
    return $foo[0];
}

这取决于您使用的PHP版本。如果您使用的是PHP5.4或更高版本,那么您的代码不会给出错误,否则您将不得不将结果存储在变量中并使用它

参考:


请在此处查找“数组解引用”。

这取决于您使用的PHP版本。如果您使用的是PHP 5.4或更高版本,则代码不会给出错误,否则您必须将结果存储在变量中并使用它

参考:


请在此处查找“数组解引用”。

PHP不支持匿名数组。请改用命名数组:

static function singleton($arg, $params = false) {
    $row=pg_fetch_row(SQL($arg, $params));
    return $row[0];
}

PHP不支持匿名数组。请改用命名数组:

static function singleton($arg, $params = false) {
    $row=pg_fetch_row(SQL($arg, $params));
    return $row[0];
}

您使用的PHP的版本是什么?它看起来像PHP5.3,不支持这一点。因此,您需要首先将函数pg_fetch_row的结果放入变量中,正如@Mario Jonathan所调用的那样。您的语法是正确的,但这是PHP的一个非常新的功能,即(IIRC)至少需要5.4版。我在更改日志中找不到它,但它更好(目前)除非是为特定平台开发,否则这是行不通的。您使用的PHP版本是什么?它似乎是PHP5.3,不支持这一点。因此,您需要首先将函数pg_fetch_row的结果放入变量中,正如@Mario Jonathan所说的。您的语法是正确的,但这是PHP的一个非常新的特性,即(IIRC)至少需要5.4版。我在更改日志中找不到它,但最好(目前)指望它不起作用,除非您为特定平台开发。PHP支持数组解引用,但仅在5.4+中支持。PHP支持数组解引用,但仅在5.4+中支持。