2011-09-10 4 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

관련 문제