PHP方法没有返回值

时间:2015-07-15 17:28:48

标签: php

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


}

1 个答案:

答案 0 :(得分:2)

如果没有$ page->下一个值,那么你的函数会返回一个值,即。最后一项。

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

在第一个条件中,您必须使用

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

以便将响应传递回链。