>백엔드 개발 >PHP 문제 >PHP에서 난수를 생성하는 방법은 무엇입니까?

PHP에서 난수를 생성하는 방법은 무엇입니까?

王林
王林앞으로
2021-03-03 17:52:1119576검색

PHP에서 난수를 생성하는 방법은 무엇입니까?

PHP에서 난수 생성 방법은 매우 간단합니다. 왜냐하면 PHP는 내부적으로 이미 만들어진 난수 생성 방법을 제공하기 때문입니다. 따라서 별도의 설정은 필요 없고 내부 메소드만 호출하면 됩니다.

php 난수 함수는 다음과 같습니다.

1. rand 함수

rand() 함수는 매개 변수를 추가하지 않고도 임의의 정수를 생성할 수 있습니다. 난수의 범위를 설정하려면 함수에서 min 및 max 값을 설정하면 됩니다. 난수 시드를 생성해야 하는 경우 srand 함수 구성을 사용하세요.

echo rand();                      // 生成 0~RAND_MAX 之间的随机数,Windows 系统下 RAND_MAX 的值为 32767,RAND_MAX 可以用函数 getrandmax() 获得
echo rand(1000000, 9999999);      // 生成 1000000~9999999 之间的随机数

$seed = time();                   // 使用时间作为种子源
srand($seed);                     // 播下随机数发生器种子
echo rand();                      // 根据种子生成 0~32768 之间的随机数。如果 $seed 值固定,则生成的随机数也不变
echo rand(1000000, 9999999);      // 根据种子生成 1000000~9999999 之间的随机数。如果 $seed 值固定,则生成的随机数也不变

2. mt_rand 함수

mt_rand()는 Mersenne Twister 알고리즘을 사용하여 임의의 정수를 반환합니다. rand() 함수와의 주요 차이점은 다음과 같습니다.

mt_rand()는 평균적으로 임의의 값을 생성합니다. libc에서 제공하는 rand() 4번, 시딩 함수는 srand()가 아닌 mt_srand()를 사용합니다. 이러한 차이가 있지만 사용 방법은 다음과 같이 여전히 유사합니다.

echo mt_rand();                   // 生成 0~RAND_MAX 之间的随机数,Windows 系统下 RAND_MAX 的值为 2147483647(与rand()中的 RAND_MAX 不同),RAND_MAX 可以用函数 mt_getrandmax() 获得
echo mt_rand(1000000, 9999999);   // 生成 1000000~9999999 之间的随机数,不受系统 RAND_MAX 影响

$seed = time();                   // 使用时间作为种子源
mt_srand($seed);                  // 播下随机数发生器种子
echo rand();                      // 根据种子生成 0~RAND_MAX 之间的随机数,如果 $seed 值固定,则生成的随机数也不变
echo rand(1000000, 9999999);      // 根据种子生成 1000000~9999999 之间的随机数,如果 $seed 值固定,则生成的随机数也不变

참고: rand() 및 mt_rand()에서 생성된 난수는 모두 정수이며 영문자를 포함하지 않습니다.

(관련 추천: php tutorial)

3. uniqid 함수

uniqid() 함수는 마이크로초 단위의 현재 시간을 기준으로 고유 ID를 생성합니다. 기본 생성되는 아이디의 길이는 13자리 또는 23자리이며 영문과 숫자를 조합하여 구성됩니다. uniqid() 함수에는 두 개의 매개변수가 있으며 형식은 다음과 같습니다.

uniqid(prefix,more_entropy)

where,

  • prefix: ID를 생성할 접두어

  • more_entropy: 추가 여부 엔트로피

다음 프로그램

echo uniqid();                    // 生成13位字符串,如:55f540e273e93
echo uniqid('one.');              // 生成前缀为one.加13位随机字符的字符串,如:one.55f540e273e93
echo uniqid('two.', true);        // 生成前缀为two.加23位随机字符的字符串(加了熵),如:two.55f540e273e932.77804707,比上面的多了 10 位,即多了:2.77804707

은 설명합니다. 시스템 시간을 기반으로 하기 때문에 이 함수로 생성된 ID는 최적이 아닙니다. 완전히 고유한 ID를 생성하려면 md5() 함수를 사용하십시오.

학습 영상 공유: php 영상 튜토리얼

원본 링크: https://www.awaimai.com/216.html

위 내용은 PHP에서 난수를 생성하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 cnblogs.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제