2014-02-19 44 views
1

該代碼是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 message: PHP Parse error: syntax error, unexpected '[' in /var/www/blockexplorer.com/htdocs/includes/sql.inc on line 69

我認爲存在能夠修復它一個配置。

+2

您使用的PHP版本是什麼? – Rikesh

+0

這似乎是一個PHP5.3,不支持這一點。因此,您需要首先將函數pg_fetch_row的結果放入變量中 - 就像@Mario Jonathan所稱的那樣。 –

+0

您的語法是正確的,但這是PHP的一項非常新的功能,(IIRC)至少需要版本5.4。我無法在更改日誌中找到它,但現在更好(現在)可以指望_not_工作,除非您爲特定平臺開發。 –

回答

4

這取決於你使用的PHP版本。如果您使用PHP 5.4或更高版本,那麼您的代碼不會出錯,否則您將不得不將結果存儲在變量中並使用它。

參考:PHP 5.4

尋找 「數組語法」 在這裏。

2

把函數的結果在一個變量

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

這是工作,我不需要5.4,謝謝! – ZhouQi

0

PHP不支持匿名數組。改爲使用命名數組:

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

由PHP支持的數組解引用_is_,但僅在5.4以上。 –