난수(random number)를 생성하려면 인수에서 난수를 발생시키는 범위를 지정할 수 있는 mt_rand() 함수를 사용합니다. 인수에서 아무것도 지정하지 않았을 경우 반환하는 난수값의 범위는 0에서 시작되어 mt_getrandmax() 함수(난수값의 최대치 표시)가 반환값이 됩니다.
● 난수의 시드값
PHP는 난수를 생성할 경우 같은 숫자(seed 값)를 바탕으로 결정된 계산 방법으로 난수를 생성하므로 같은 시드값으로는 '동일한 값'이 '동일한 순서'로 생성됩니다. mt_rand() 함수의 시드값은 자동으로 설정되기 때문에 일반적인 설정이 필요 없습니다.
명시적으로 시드값을 설정하려면 mt_srand() 함수를 사용해야 합니다. 다음과 같이 microtime() 함수(현재의 UNIX 타임스탬프를 마이크로초까지 되돌려줌)등을 사용하여 실행할 때 반드시 다른 값이 시드값으로 설정되도록 지정해야 합니다.
● 난수 생성하기
<!DOCTYPE html> <html lang="ko"> <head> <meta charset="UTF-8"> <title>난수를 생성하고 싶을 때</title> </head> <body> <div> <?php // 난수의 시드값을 설정한다 mt_srand((double) microtime() * 100000); echo '<p>난수를 생성: 0 ~ ' . mt_getrandmax() . '</p>'; echo '<ul>'; echo '<li>' . mt_rand() . '</li>'; echo '<li>' . mt_rand() . '</li>'; echo '<li>' . mt_rand() . '</li>'; echo '</ul>'; echo '<p>5~20까지의 난수를 생성</p>'; echo '<ul>'; echo '<li>' . mt_rand(5, 20) . '</li>'; echo '<li>' . mt_rand(5, 20) . '</li>'; echo '<li>' . mt_rand(5, 20) . '</li>'; echo '</ul>'; ?> </div> </body> </html>
결과화면
'웹코딩 > PHP' 카테고리의 다른 글
서기를 단기로 표현하고 싶을 때 (0) | 2016.09.26 |
---|---|
날짜와 시간의 일부를 사용하고 싶을 때 getdate() 함수 (0) | 2016.09.26 |
독특한 ID를 만들고 싶을때 uniqid() | md5() | mt_rand() (0) | 2016.09.25 |
반복해서 문자열을 표시하고 싶을 때 (0) | 2016.09.25 |
문자열을 변환하고 싶을 때 str_replace() (0) | 2016.09.25 |