0

我正在测试基于此评论在 php 文档中找到的 php 函数: http ://www.php.net/manual/en/function.rand.php#108861

<?php

    function RandNumber($e) {

        for ($i = 0; $i < $e; $i++) {
            $rand =  $rand .  rand(0, 9);  
        }
        return $rand;
    }

    echo RandNumber(4);
    // Outputs a 6 digit random number
?>

我收到错误通知:

未定义变量:第 7 行 /var/www/eod.php 中的 rand

这是第 7 行:

$rand =  $rand . rand(0, 9);

由于该功能按预期工作,为什么会导致此错误?

4

3 回答 3

2

初始化您的$rand变量以删除此警告:

 function RandNumber($e){
     $rand="";
     for($i=0;$i<$e;$i++){
        $rand =  $rand.rand(0, 9);  
     }
     return $rand;
 }

请注意,您可以简化代码:

 function RandNumber($e){
     $rand="";
     for(;$e-->0;){ // no need for an additional variable
        $rand .= rand(0, 9); // addition and assignement with one operator  
     }
     return $rand;
 }
于 2012-11-13T11:49:30.317 回答
2

要输出一个随机的 6 位数字(如果您需要更大的数字,大于mt_getrandmax(),此解决方案将失败),只需使用

mt_rand(100000, 999999);

要包含带前导零 ( 000123) 的数字,您可以使用my_rand(0, 999999)和的组合str_pad($number, 6, "0", STR_PAD_LEFT);

不需要花哨的循环。

于 2012-11-13T11:51:57.530 回答
1

这不是错误.. 这是一条通知消息.. 如果您不想出现该通知,您应该在执行循环之前定义它:

$rand = '';

for($i=0;$i<$e;$i++){
 $rand =  $rand .  rand(0, 9);  
}
于 2012-11-13T11:50:59.980 回答