php简单递归返回null

问题描述:

我在哪里错了?代码看起来不错,但函数返回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); 
    } 
} 

$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