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

おかげヒマンシュ・パテル!私は再帰で戻り値を逃しました。 – Ned

+4

はい、コードをダンプするだけでなく、説明を追加することもできます。 – AbraCadaver

関連する問題