0

我有这样的代码

var_dump(randomDigits(20));
function randomDigits($numDigits) {
    if ($numDigits <= 0) {
        return '';
    }

    return mt_rand(0, 9) . randomDigits($numDigits - 1);
}

echo "<br />";

var_dump(randomDigits2(20));
function randomDigits2($numDigits) {
    if ($numDigits <= 0) {
        return '';
    }

    return mt_rand(1000, 9999) . randomDigits($numDigits - 4);
}

var_dump(randomDigits3(20));
function randomDigits3($numDigits) {
    $digits = '';

    for ($i = 0; $i < $numDigits; ++$i) {
        $digits .= mt_rand(0, 9);
    }

    return $digits;
}

所有 3 个函数都生成 20 位数字。但你会选择哪一个,为什么?如果这两个都不好,请举个例子?提前致谢

4

1 回答 1

0

我会去循环,保持简单

<?php

function random_number($length = 20)
{
    $number = '';
    for ($i = 0; $i < $length; $i++) $number .= mt_rand(0,9);
    return $number;
}

echo random_number();
于 2012-12-15T14:42:47.247 回答