>  기사  >  백엔드 개발  >  PHP 내장 함수를 사용하여 난수를 생성하는 방법 요약

PHP 내장 함수를 사용하여 난수를 생성하는 방법 요약

藏色散人
藏色散人앞으로
2019-01-17 16:43:194921검색


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()에서 생성된 난수는 모두 정수이며 영문자를 포함하지 않습니다.

3. uniqid 함수

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

uniqid(prefix,more_entropy)

그 중

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 내장 함수를 사용하여 난수를 생성하는 방법 요약의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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