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 に答える