2017-10-13 8 views
0

내가 잘못 했나요? 코드는 정상적으로 보이지만 함수는 NULL을 반환합니다.PHP 간단한 재귀 반환 null

$ar = array(1, 2, 3, 4, 5, 6, 7, 8, 9); 
$n = 6; 

$new_n = chckn($n, $ar); 

echo $new_n; 

function chckn($n, $ar){ 
    if(!in_array($n, $ar)){ 
     echo "===$n===\n"; 
     return $n; 
    } else { 
     $n = rand(1,10); 
     chckn($n, $ar); 
    } 
} 

답변

1
$ar = array(1, 2, 3, 4, 5, 6, 7, 8, 9); 
$n = 6; 

$new_n = chckn($n, $ar); 

echo $new_n; 

function chckn($n, $ar){ 
    if(!in_array($n, $ar)){ 
     //echo "===$n===\n"; 
     return $n; 
    } else { 
     $n = rand(1,10); 
     return chckn($n, $ar); 
    } 
} 
+0

감사 Himanshu 파텔! 재귀에서 복귀를 놓쳤습니다. – Ned

+4

예, 코드를 덤핑하는 대신 설명을 추가 할 수 있습니다. – AbraCadaver