2012-03-31 47 views
0

這樣做的傳統方式是輸出mysql_fetch_array沒有把它變成一個變量

$row = mysql_fetch_array($query); 
echo $row['column']; 

,但我想知道是否有可能像做

echo mysql_fetch_array($query)['column']; 

我試圖做這在我的本地安裝,但我得到這個錯誤:

Parse error: syntax error, unexpected '[', expecting ',' or ';' in C:\Program Files (x86)\EasyPHP\www\array.php on line 5 

這主要是爲了減少數量在我的代碼行,因爲我正在寫的地方很多MySQL的結果爲變量的函數,我不希望有一些代碼看起來像

$row = ... 
$this->data[] = $row[]; 
$row = ... 
$this->data[] = $row[]; 
...and so on 
+0

該函數語法function()['arraykey']'被稱爲_array dereferencing_,它可能在新發布的PHP 5.4中,但不能早期版本。 – 2012-03-31 23:21:03

+0

剛剛看了起來,謝謝。我的easyphp安裝正在運行5.3.9:S – Jared 2012-03-31 23:23:20

+2

減少的行數並不總是等於改進的代碼。您還需要考慮代碼的可讀性。 – cmbuckley 2012-03-31 23:23:57

回答

4

您可以使用mysql_fetch_object()代替:

echo mysql_fetch_object($query)->column; 

您還可以使用mysql_result()從結果集檢索單場:

echo mysql_result($query, 0, 'column'); 

兩種情況都是高度不合適雖然如果你想訪問每行多個單列..

+0

好吧,因爲他沒有在循環中使用它,所以他可能只有一行。當循環不將行分配給變量只會導致非常難看的代碼... – ThiefMaster 2012-03-31 23:24:47