PHP方法不返回值

PHP方法不返回值,php,Php,我正在开发一个从Runkeeper API获取数据的应用程序。与许多API一样,结果被分解为多个页面。我试图将这些页面合并到一个数组中,最终作为JSON存储在服务器上 获取和加入结果都是有效的,但是当我试图返回数组(或任何值)时,我什么也得不到。如果我打印数组,我会看到结果。即使条件中的回音在工作,也不是返回 有人能看出我的错误吗 function getAllRunkeeperActivity($activities = '', $url = '/fitnessActivities'){

我正在开发一个从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
    }


}

如果没有$page->next值,即最后一项,则函数将返回一个值

但是,它会将其返回到上一项的函数调用,而不是原始项。它死在那里

在第一种情况下,您必须使用

 return $this->getAllRunkeeperActivity($activities, $page->next);

因此,响应被传递回链。

返回语句在
else
子句中——这就是您期望返回值的地方吗?在else语句中只有一个返回。。。检查您的代码并更正它!你怎么调用这个方法?@donald123,我只想在else中返回。如果$page->next存在,如果请求另一个页面,则追加该数据并自行执行again@sbeliv01是,因为once$page->next不存在,我们位于最后一页,因此可以返回所有数据