2015-07-09 2 views
0

У меня есть проблемы с codeignitor Рекурсивная функция, которая возвращает пустое значение. ниже моя функция.Рекурсивная функция Codeignitor, не возвращающая значение

function recursive_data($url){ 

     $ch = curl_init(); 
     curl_setopt($ch, CURLOPT_URL, $url); 
     curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
     $output = curl_exec($ch); 
     curl_close($ch); 
     $instaArr = (array) json_decode($output); 

     // print_r($instaArr); // print value here 

     if($instaArr['pagination'] == "") { 
      return $instaArr['data'];    
     } else { 
      return $this->recursive_data($instaArr['pagination']->next_url); 
     } 

    } 

Я называю эту функцию выше в другой функции, как этот

$return_data = $this->recursive_data($url); 

Он возвращается пустое значение. пока он печатает значение в прокомментированном коде print_r($instaArr)

Пожалуйста, помогите мне найти решение.

+0

Попробуйте вернуть 'instaArr ['pagination'] -> next_url; 'Нет необходимости в функции вызова по типу возврата – Saty

+0

Но он хочет работать, мне нужны все данные, а не url взамен. – user2105662

+0

просто используйте 'return $ instaArr'; – Saty

ответ

0

используйте, пожалуйста, как внизу.

function recursive_data($url){ 

    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL, $url); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
    $output = curl_exec($ch); 
    curl_close($ch); 
    $instaArr = json_decode($output,true); 

    // print_r($instaArr); // print value here 

    if($instaArr['pagination'] == "") { 
     return $instaArr['data'];    
    } else { 
     return $this->recursive_data($instaArr['pagination']->next_url); 
    } 

    } 
+0

такой же вещь не возвращаю ничего. – user2105662

0

Что относительно этого?

function recursive_data($url) 
{ 
    $objCurlData = new stdClass(); 

    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL, $url); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
    $output = curl_exec($ch); 
    curl_close($ch); 
    $instaArr = (array) json_decode($output); 

    // print_r($instaArr); // print value here 

    if($instaArr['pagination'] == "") { 
     $objCurlData->data = $instaArr['data']; 
    } else { 
     $objCurlData->objChild = $this->recursive_data($instaArr['pagination']->next_url); 
    } 

    return $objCurlData; 

} 
Смежные вопросы