2017-10-13 105 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