2011-09-10 13 views
1

乱数0-3を生成するためにこれを使用していますが、それ以外はうまく動作し、nullを返します。すべてのアイデアは、ランダムな文字列関数がnullを返すことがある

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

return $string; } 

答えて

5

はstrlen($文字)4 mt_rand(0,4)は0から

4.包括$文字までのランダムな数字になります返す4の長さを持っている素晴らしいことですあなたは$文字[0]から$文字[3]にアクセスできます。 ランダムな4を生成した場合、$ characters [4]にアクセスするとnullになります

+0

ああ、このための迅速な修正はありますか? – BandonRandon

+2

はい $ string。= $ characters [mt_rand(0、strlen($ characters)-1)]; – kamahl

+0

これはとても簡単です、ありがとう! – BandonRandon

-2

ネイティブのPHP関数ですでに可能なものに対してユーザー作成関数が必要なのはなぜですか?

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

codepad here

+0

私はあなたの例が数値でなければならないと厳密に数値を扱っていないときにも関数を使用します。 – BandonRandon

+0

[必須ではありません](http://codepad.org/SxO4Ighs)。 –

+0

humm ... 2文字を表示したいのですが? – BandonRandon

関連する問題