정의 및 사용법
srand() 함수는 난수 생성기(random number generator)에 시드(seed)를 설정하여 초기화하는 데 사용됩니다. 시드를 지정하면 난수 생성기가 특정한 시작 상태에서 동작하게 되어, 같은 시드를 사용하면 항상 동일한 난수 시퀀스를 얻을 수 있습니다.
대부분의 난수 생성기는 초기 시드 설정이 필요하지만, PHP에서는 srand() 함수 호출이 선택 사항입니다. 스크립트 실행 시 시드가 자동으로 설정되기 때문입니다.
참고로 PHP 7.1.0부터 srand() 함수는 mt_srand() 함수의 별칭(alias)으로 동작하며, 더 이상 수동으로 시드를 설정할 필요가 없습니다.
이 함수는 반환 값이 없습니다(void).
구문
srand ([ int $seed ] ) : void
매개변수
| 번호 | 매개변수 및 설명 |
|---|---|
| 1 | seed 난수 생성기의 시드로 사용할 정수값입니다. 이 값을 생략하면 임의의 숫자가 자동으로 사용됩니다. |
반환 값
이 함수는 어떤 값도 반환하지 않습니다.
지원 PHP 버전
이 함수는 PHP 4.x, PHP 5.x, PHP 7.x 모든 버전에서 사용할 수 있습니다.
예제 1: 고정 시드로 난수 생성기 초기화
다음 예제는 rand() 함수를 호출하기 전에 srand() 함수로 난수 생성기를 먼저 초기화하는 방법을 보여줍니다.
<?php
srand(5);
echo "rand(1,100)=", rand(1,100);
?>
실행 결과
위 코드를 실행하면 다음과 같은 결과가 출력될 수 있습니다.
rand(1,100)=12
시드가 고정되어 있으므로 같은 환경에서 실행하면 항상 동일한 값이 나옵니다.
예제 2: 현재 시간을 시드로 사용하기
다음 예제는 현재 타임스탬프(timestamp)를 시드로 사용하여 난수 생성기를 초기화합니다.
<?php
srand(time());
echo "rand()=", rand();
?>
실행 결과
실행 시점에 따라 다음과 유사한 결과가 출력됩니다.
rand()=548287992
time() 함수의 반환값은 계속 변하기 때문에, 실행할 때마다 서로 다른 난수가 생성됩니다.