2014-01-17 120 views
0

我試圖創建一個簡單的函數返回只有第一套從查詢結果的,但我發現了以下錯誤:PHP函數返回第一成績只

Parse error: syntax error, unexpected '[' in /Users/MAMP_SITES/website/classes/DB.php on line 78 

下面是代碼導致錯誤:

$user = DB::getInstance()->get('users', array('username', '=', 'rich')); 

if(!$user->count()) { 
    echo 'No user'; 
} else { 
foreach($user->results() as $user) { 
    echo $user->first()->username; 
} 
} 

下面是db.php中的相關功能:

public function results() { 
    return $this->_results; 
} 

public function first() { 
    return $this->results()[0]; // This is line 78 where the error is 
} 

我得到這個代碼FR om教程可能會有點過時。

+2

數組語法,僅在PHP> 5.4。什麼是你的PHP版本? '從PHP 5.4開始,可以直接對函數或方法調用的結果進行數組解引用。之前它只能使用一個臨時變量。 –

+0

PHP版本5.3.14 –

+0

所以本教程不是過時了,實際上是相反的:) –

回答

1

數組解引用僅在更新的PHP版本中可用。要返回第一個數組項,你可以使用current()函數。

return current($this->results()); 
+1

謝謝。我已經改變了MAMP中的設置來運行5.4.4,這似乎是更好的方法,因爲這個服務器最終還會運行5.4.4。 –

0

你可以試試:

public function first() { 
    $results = $this->results(); 
    return (sizeof($results)>0 ? $results[0] : null); 
} 

OR

public function first() { 
    return current($this->results()); 
}