2013-10-24 2 views
0

좋아,이 말은 의미가 없으며이 문제가 발생한 것은 처음입니다.PHP가 올바르게 반환되지 않습니다.

나는 어리 석거나 무엇인가 말하십시오. 여기

내 함수 :이 호출에게 있습니다

function getCountry($n, $origCode) 
{ 
    global $countryData; 
    if(strlen($n) > 0) 
    { 
     if(isset($countryData[$n])) 
     { 
      //$return = $countryData[$n]; 
      var_dump($n); 
      return $n; 
     } 
     else 
     { 
      $n = substr($n, 0, -1); 
      getCountry($n, $origCode); 
     } 
    } 
    else 
    { 
     echo "ERROR exiting couldn't find code $origCode $count<br>"; 
    } 

} 

foreach($file as $line) 
{ 
    $split = explode(",", $line); 
    echo "using $split[1]<br>"; 
    $country = getCountry(trim($split[1]), trim($split[1])); 
    var_dump($country); 
    echo "<br>"; 
} 

파일 배열 :

$file = array("AA,93", 
       "BB,9370", 
       "CC,9378", 
       "DD,9377", 
       "EE,937", 
       "FF,9379", 
       "GG,355", 
       "HH,35568", 
       "II,35567" 
      ); 

나라 자료 배열은

array('93'=>array('id'=>2') 
    '355'=> array('id'=>'3) 
); 
입니다 0

var_dumps은 다음과 같습니다 : 내가 뭘 전혀 이해 해달라고하는 것은

using 93 
string '93' (length=2) 
string '93' (length=2) 

using 9370 
string '93' (length=2) 
null 

using 9378 
string '93' (length=2) 
null 

using 9377 
string '93' (length=2) 
null 

using 937 
string '93' (length=2) 
null 

using 9379 
string '93' (length=2) 
null 

using 355 
string '355' (length=3) 
string '355' (length=3) 

using 35568 
string '355' (length=3) 
null 

using 35567 
string '355' (length=3) 
null 

난 그냥 위해서 var_dump 때 내가 값을 반환하기 전에 왜 좋아하지만 기능의 아웃 위해서 var_dump 일단 내가

이를 널 수 나를 혼란스럽게하고 나는 모른다.

어떤 아이디어 ??

감사

리암

+3

, 당신이 당신의 전화에'return'을 놓치고있어 생각 'else'에서'getCountry' ... 그것은'return getCountry ($ n, $ origCode);이어야합니다. 처음에는 – keithhatfield

+0

함수는 아무것도 반환하지 않습니다. –

+0

dleiftah - 나는 바보 같은 느낌입니다. 많은 분들께 감사드립니다. – Liam

답변

2

을 당신이 값을 반환하지 않기 때문에, 당신은 당신의 함수 재귀를 호출 할 때 함수라는 recursivelly의 결과를 반환해야합니다.

else 
    { 
     $n = substr($n, 0, -1); 
     return getCountry($n, $origCode); 
    } 

을 그리고 전체 기능이되었다 : 당신의 다른 상태에서

, 당신은 반환해야

언뜻
function getCountry($n, $origCode) 
{ 
    global $countryData; 
    if(strlen($n) > 0) 
    { 
     if(isset($countryData[$n])) 
     { 
      //$return = $countryData[$n]; 
      var_dump($n); 
      return $n; 
     } 
     else 
     { 
      $n = substr($n, 0, -1); 
      return getCountry($n, $origCode); 
     } 
    } 
    else 
    { 
     echo "ERROR exiting couldn't find code $origCode $count<br>"; 
    } 

} 
관련 문제