【问题标题】:Random string function sometimes returns null随机字符串函数有时会返回 null
【发布时间】:2011-09-10 07:47:50
【问题描述】:

我正在使用它来生成一个随机数 0-3,它工作正常,除了偶尔会返回 null,我不知道为什么。任何想法都会很棒

function genRandomString($length=1,$characters = '0123',$string = '') {
for ($p = 0; $p < $length; $p++) {
    $string .= $characters[mt_rand(0, strlen($characters))];
}

return $string; } 

【问题讨论】:

    标签: php function random


    【解决方案1】:

    StrLen($characters) 返回 4 mt_rand(0,4) 将产生从 0 到 4 的随机数。

    $characters 的长度为 4,所以你可以从 $characters[0] 到 $characters[3] 访问它。 如果你生成一个随机的 4,你访问 $characters[4],所以你得到你的 null

    【讨论】:

    • 啊,有什么快速解决办法吗?
    • 是 $string .= $characters[mt_rand(0, strlen($characters)-1)];
    • 欢迎您。还可以尝试stereofrogs 方法将error_reportong 设置为E_ALL,这样您就会收到错误消息
    【解决方案2】:

    为什么你需要一个用户创建的函数来实现原生 PHP 函数已经可以实现的功能?

    for($i = 0; $i < 100; $i++) echo mt_rand(0, 3) . "\n";
    

    codepad here

    【讨论】:

    • 我在不处理严格的数字字符串时也使用该函数,我认为您的示例必须是数字的。
    • 2? Here's an example with 5。如果你想要一个样本,你可以do away with the outer loop
    • 是的,但现在我们变得像使用函数一样复杂:)
    • 我同意。我的评论是对您所说的使用该功能的原因的回应:我正在使用它来生成一个随机数 0-3
    猜你喜欢
    • 2017-09-20
    • 1970-01-01
    • 2020-04-29
    • 1970-01-01
    • 2021-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多