只返回第一个结果的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() );
}