2013-09-29 2 views
1

이 함수는 배열을 반환해야하지만 대신 NULL을 반환합니다. 때로는 제대로 작동하기 때문에 생성하는 배열의 크기와 관련이있을 수 있습니다. 나는 항상 내가 필요한 배열을 보여 주 반환 전에 var_dump 할려고했지만 함수의 출력 var_dump 그냥 NULL을 보여줍니다.함수는 배열을 반환해야하지만 대신 NULL을 반환합니다.

function getAllUploads($videoFeed, $videos = array(), $counter = 1){ 
    foreach($videoFeed as $videoEntry){ 
     if($videoEntry->extensionElements[6]->extensionAttributes['permission']['value'] == "allowed"){ 
      $videos[] = array("videoID" => $videoEntry->getVideoId(), "uploaded" => ytToMySQLDateTime($videoEntry->getPublished()->getText())); //date('Y-m-d H:i:s', $videoEntry->getPublished()->getText()) 
     } 
     $counter++; 
    } 

    try{ 
     $videoFeed = $videoFeed->getNextFeed(); 
    }catch(Zend_Gdata_App_Exception $e){ 
     return $videos; 
    } 

    if($videoFeed){ 
     getAllUploads($videoFeed, $videos, $counter); 
    } 
} 
+3

내부의 기능을 반환해야합니다. – TheWolf

+0

마지막 줄이 없습니다. 성가신 것 같아. – FloydThreepwood

+0

네, 알아요. 그러나 예외는 언제나 발생합니다. 그럼에도 불구하고 다른 곳으로 리턴하려고 시도 할 것입니다. – CupOfTea696

답변

2

당신은`Zend_Gdata_App_Exception`가 발생하지 않는 한이 기능은 아무것도 반환하지 않습니다 마지막 if()

function getAllUploads($videoFeed, $videos = array(), $counter = 1){ 
    foreach($videoFeed as $videoEntry){ 
     if($videoEntry->extensionElements[6]->extensionAttributes['permission']['value'] == "allowed"){ 
      $videos[] = array("videoID" => $videoEntry->getVideoId(), "uploaded" => ytToMySQLDateTime($videoEntry->getPublished()->getText())); //date('Y-m-d H:i:s', $videoEntry->getPublished()->getText()) 
     } 
     $counter++; 
    } 

    try{ 
     $videoFeed = $videoFeed->getNextFeed(); 
    }catch(Zend_Gdata_App_Exception $e){ 
     return $videos; 
    } 

    if($videoFeed){ 
     return getAllUploads($videoFeed, $videos, $counter); 
    } 
} 
+0

마지막 'if'를 풀 수 없습니까? 그렇지 않으면 다른 반환이 필요합니다. – FloydThreepwood

+0

'catch()'가 'if ($ videoFeed)'를 catch하지 않으면 'catch'가 다른 반환을 수행합니다. – doitlikejustin

+1

이 반환됩니다. 감사합니다. – CupOfTea696

관련 문제