php简单递归返回null

Where am I wrong? The code looks OK, but the function returns 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===
";
        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===
";
        return $n;
    } else {
        $n = rand(1,10);
        return chckn($n, $ar);
    }
}