只返回第一个结果的PHP函数

只返回第一个结果的PHP函数,php,return,Php,Return,我试图创建一个简单的函数,仅返回查询的第一组结果,但出现以下错误: 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()) {

我试图创建一个简单的函数,仅返回查询的第一组结果,但出现以下错误:

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
}

我从一个可能有点过时的教程中获得了这段代码。

数组解引用仅在较新的PHP版本中可用。要返回第一个数组项,可以使用current()函数

return current($this->results());
您可以尝试:

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


数组解引用,仅在php>5.4上。你的php版本是什么<代码>从PHP5.4开始,可以直接对函数或方法调用的结果进行数组解引用。以前只能使用一个临时变量。所以教程不是有点过时,实际上正好相反:)啊,那么解决方法是什么?MAMP正在运行5.3.14。谢谢。我已将MAMP中的设置更改为运行5.4.4,这似乎是更好的方法,因为最终将安装的服务器也运行5.4.4。
public function first() {
    return current( $this->results() );
}