我正在开发一个从Runkeeper API获取数据的应用程序。与许多API一样,结果分解为页面。我正在尝试将这些页面连接到一个最终作为JSON存储在服务器上的数组中。
获取和加入结果都可以,但是当我尝试返回数组(或任何值)时,我什么也得不到。如果我打印数组,我会看到我的结果。即使条件中的回声是有效的,也不是回报。
有人能看到我的方式错误吗?
function getAllRunkeeperActivity($activities = '', $url = '/fitnessActivities'){
if(empty($activities)){
$activities = array();
}
$page = $this->getRunKeeperData($url);
foreach($page->items as $item){
$activities[] = $item;
}
if(isset($page->next)){
// Getting another page
$this->getAllRunkeeperActivity($activities, $page->next);
} else {
// return the result
echo 'Return ' . count($activities) . ' items' . "\r\n"; // This happens
// if I print_r $activities I get the expected array information
return $activities; // this does not
}
}
答案 0 :(得分:2)
如果没有$ page->下一个值,那么你的函数会返回一个值,即。最后一项。
但是,它将它返回到上一项的函数调用,而不是原来的函数调用。它死在那里。
在第一个条件中,您必须使用
return $this->getAllRunkeeperActivity($activities, $page->next);
以便将响应传递回链。