Computer >> 컴퓨터 >  >> 프로그래밍 >> PHP

PHP srand() 함수 완벽 가이드 – 난수 생성기 시드 초기화 방법

정의 및 사용법

srand() 함수는 난수 생성기(random number generator)에 시드(seed)를 설정하여 초기화하는 데 사용됩니다. 시드를 지정하면 난수 생성기가 특정한 시작 상태에서 동작하게 되어, 같은 시드를 사용하면 항상 동일한 난수 시퀀스를 얻을 수 있습니다.

대부분의 난수 생성기는 초기 시드 설정이 필요하지만, PHP에서는 srand() 함수 호출이 선택 사항입니다. 스크립트 실행 시 시드가 자동으로 설정되기 때문입니다.

참고로 PHP 7.1.0부터 srand() 함수는 mt_srand() 함수의 별칭(alias)으로 동작하며, 더 이상 수동으로 시드를 설정할 필요가 없습니다.

이 함수는 반환 값이 없습니다(void).

구문

srand ([ int $seed ] ) : void

매개변수

번호매개변수 및 설명
1seed
난수 생성기의 시드로 사용할 정수값입니다. 이 값을 생략하면 임의의 숫자가 자동으로 사용됩니다.

반환 값

이 함수는 어떤 값도 반환하지 않습니다.

지원 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() 함수의 반환값은 계속 변하기 때문에, 실행할 때마다 서로 다른 난수가 생성됩니다.