没有返回值,虽然似乎工作

时间:2013-10-31 04:47:03

标签: php arrays recursion

我有以下PHP代码,它使用rand()生成随机数,并且不确定在max int之前没有重复项,这是一个跟踪已使用数字的会话。如果randoms较大,那么max应该永远不要太高,所以速度不是问题,这种方法到目前为止工作得很好。 HOWERVER ...

function random($min,$max) {
    if(count($_SESSION["randoms"])==5) {
        unset($_SESSION["randoms"]);
    }
    $rand = rand($min,$max);
    echo "Chosen Random: $rand<br>";
    if(@in_array($rand,$_SESSION["randoms"]) && count($_SESSION["randoms"])!=0) {
        echo "<strong>In Array: </strong>Do It Again<br>\n";
        random($min,$max);
    }
    else {
        echo "<strong>All Good </strong> Return $rand as number and include in array!<br>\n";
        $_SESSION["randoms"][] = $rand;
        return $rand;
    }
}

我有几个echo块来帮助调试。一切正常,但是当在递归上调用随机数时,它会继续运行,直到它找到一个不在数组中的数字并回显“All Good”并将其添加到数组中,但不会返回它。如果数字不在数组中,那么它将返回正常。我很困惑为什么它会回显“All Good”并将其添加到数组中,但不会将其返回到脚本的其余部分中使用。

0 个答案:

没有答案