php调用按值返回较小的值中的主要功能



我有一个奇怪的问题,我写了一个递归功能,以从Facebook获得更多结果。在称为函数(递归)中,我将值返回到主函数。在我打印返回值时的调用函数中,它会显示确切的值(通常为90的数组大小)。但是在我打印返回值时的主函数中,它总是较小(每次数组大小正好为50)。这是我的代码..

public function mainFunction(){
    $response = $fb->get('/me?fields=id,name,accounts', $useraccesstoken);    
    $userData = $response->getDecodedBody();
    $pages = $userData['accounts'];
    $pages = $this->getMorePages($pages);
}
public function getMorePages($pages){
    if(count($pages)>1 && isset($pages['paging']['next'])){
        $morePages = file_get_contents($pages['paging']['next']);
        $morePages = json_decode($morePages,true);
        foreach($morePages['data'] as $page){
            array_push($pages['data'],$page);
        }
        if(count($morePages)>1 && isset($morePages['paging']['next'])) {
            $pages['paging']['next']=$morePages['paging']['next'];
            $this->getMorePages($pages);
        }
        return $pages;
    }else{
        return $pages;
    }
}

我的代码问题是什么。?

您使用的是递归函数,但不使用内部呼叫的值返回...

固定的代码为:

public function getMorePages($pages){
    if(count($pages)>1 && isset($pages['paging']['next'])){
        $morePages = file_get_contents($pages['paging']['next']);
        $morePages = json_decode($morePages,true);
        foreach($morePages['data'] as $page){
            array_push($pages['data'],$page);
        }
        if(count($morePages)>1 && isset($morePages['paging']['next'])) {
            $pages['paging']['next']=$morePages['paging']['next'];
            // Add return values to the main array
            //$pages += $this->getMorePages($pages);
            // For more support use array_merge function
            $pages = array_merge( $this->getMorePages($pages), $pages )
        }
        return $pages;
    }else{
        return $pages;
    }
}

相关内容

  • 没有找到相关文章

最新更新