PHP의 rand() 함수는 난수(random number)를 생성하는 대표적인 내장 함수입니다. 인자 없이 호출하면 임의의 정수를 반환하고, 최솟값과 최댓값을 전달하면 해당 범위 안에서만 난수를 얻을 수 있습니다.
문법(Syntax)
rand(); 또는 rand(min_range, max_range);
매개변수(Parameters)
min_range – 반환될 수 있는 가장 작은 값으로, 기본값은 0입니다.
max_range – 반환될 수 있는 가장 큰 값입니다.
반환값(Return)
rand() 함수는 min_range와 max_range 사이(양쪽 값 포함)의 임의의 정수를 반환합니다. 매개변수를 생략하면 0부터 getrandmax()가 반환하는 최댓값 사이의 정수를 반환합니다.
예제 1 – 기본 사용법
<?php
echo(rand() . "<br>");
echo(rand() . "<br>");
echo(rand() . "<br>");
echo(rand() . "<br>");
echo(rand() . "<br>");
echo(rand());
?>
출력 결과
1581227270<br>1094001227<br>306337052<br>151211887<br>7894804<br>115835633
난수이기 때문에 실행할 때마다 결과는 달라지며, 위 숫자는 어디까지나 예시입니다.
예제 2 – 범위를 지정한 난수 생성
이번에는 원하는 범위를 직접 지정해 난수를 만들어 보겠습니다.
<?php
echo(rand(2, 5) . "<br>");
echo(rand(90, 190));
?>
출력 결과
4<br>114
첫 번째 호출은 2~5 사이의 정수를, 두 번째 호출은 90~190 사이의 정수를 반환합니다. 역시 실행할 때마다 다른 값이 출력됩니다.
참고 사항
rand() 함수는 암호학적으로 안전한(cryptographically secure) 난수를 생성하지 않습니다. 인증 토큰, 비밀번호 생성 등 보안이 중요한 용도에는 PHP 7 이상에서 제공되는 random_int() 또는 random_bytes() 함수를 사용하는 것이 좋습니다.