2012-03-31 73 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