PHP方法没有返回值

I'm working on an app that gets data from the Runkeeper API. As with many APIs the results are broken down into pages. I'm trying to join these pages into one array that ultimately is stored as JSON on the server.

Getting and joining the results all works, but when I try to return the array (or any value) I get nothing. If I print the array I see my results. Even the echo within the conditional is working, it's just not the return.

Can someone see the error of my ways?

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' . "
"; // This happens

        // if I print_r $activities I get the expected array information

        return $activities; // this does not
    }


}

Your function returns a value if there is no $page->next value, ie. the last item.

BUT, it's returning it to the function call from the previous item, not your original one. It dies there.

In the first condition, you have to use

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

so that the response gets passed back up the chain.