2011-09-10 80 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,你訪問$字符[4],所以你得到你的空

+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