> 백엔드 개발 > PHP 문제 > PHP에서 임의성을 구현하는 함수는 무엇입니까?

PHP에서 임의성을 구현하는 함수는 무엇입니까?

青灯夜游
풀어 주다: 2023-03-13 07:34:01
원래의
7021명이 탐색했습니다.

PHP의 임의 함수는 다음과 같습니다. 1. 임의의 정수를 생성할 수 있는 rand() 2. mt_rand(), 배열에 임의의 키 이름을 반환할 수 있는 shuffle() 배열을 무작위로 섞습니다. 5. str_shuffle() 6. uniqid();

PHP에서 임의성을 구현하는 함수는 무엇입니까?

이 튜토리얼의 운영 환경: Windows 7 시스템, PHP 버전 7.1, DELL G3 컴퓨터

PHP 무작위 함수에는 주로 rand, mt_rand, array_rand 및 무작위로 "정렬된"(셔플된) 함수 셔플이 포함됩니다. , str_shuffle, 고유 ID의 uniqid를 생성할 수 있습니다.

1. rand는 난수를 생성합니다

<?php
$base = &#39;abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789&#39;;
$count = strlen($base);
$random = &#39;&#39;;
for ($i=0; $i < 16; $i++) { 
 $random.=$base[rand(0,$count-1)];
}
echo $random;
?>
로그인 후 복사

rand() 함수는 libc의 난수 생성기를 사용하여 난수를 생성합니다. 일반적으로 속도가 느리고 불확실한 요소가 있으므로 대신 mt_rand 함수를 사용하는 것이 좋습니다.

getrandmax() 함수는 rand 함수가 생성할 수 있는 최대 난수를 반환할 수 있으므로(내 시스템은 32767입니다) rand 함수의 두 번째 매개 변수를 설정할 때 getrandmax의 반환 값을 너무 높게 설정하지 마세요.

2. mt_rand는 난수를 생성합니다

<?php
$base = &#39;abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789&#39;;
$count = strlen($base);
$random = &#39;&#39;;
for ($i=0; $i < 16; $i++) { 
 $random.=$base[mt_rand(0,$count-1)];
}
echo $random;
?>
로그인 후 복사

많은 오래된 libc 난수 생성기는 불확실하고 알 수 없는 특성을 가지고 있으며 매우 느립니다. PHP의 rand() 함수는 기본적으로 libc 난수 생성기를 사용합니다. 이를 대체하기 위해 mt_rand() 함수가 비공식적으로 사용됩니다. 이 함수는 » Mersenne Twister의 알려진 기능을 난수 생성기로 사용합니다. 이는 libc에서 제공하는 rand()보다 평균 4배 빠르게 난수 값을 생성할 수 있습니다. 개발 중에는 rand 대신 mt_rand 함수를 사용하는 것이 좋습니다.

선택적 매개변수 min 및 max가 제공되지 않으면 mt_rand()는 0과 mt_getrandmax() 사이의 의사 난수를 반환합니다. 예를 들어, 3에서 20(포함) 사이의 임의의 숫자를 원하는 경우 mt_rand(3, 20)를 사용하십시오.

3. array_rand 함수

<?php
$base = array(&#39;a&#39;,&#39;b&#39;,&#39;c&#39;,&#39;d&#39;,&#39;e&#39;,&#39;f&#39;,&#39;g&#39;,&#39;h&#39;,&#39;i&#39;,&#39;j&#39;,&#39;k&#39;,&#39;l&#39;,&#39;m&#39;,&#39;n&#39;,&#39;o&#39;,&#39;p&#39;,&#39;q&#39;,&#39;r&#39;,&#39;s&#39;,&#39;t&#39;,&#39;u&#39;,&#39;v&#39;,&#39;w&#39;,&#39;x&#39;,&#39;y&#39;,&#39;z&#39;,&#39;A&#39;,&#39;B&#39;,&#39;C&#39;,&#39;D&#39;,&#39;E&#39;,&#39;F&#39;,&#39;G&#39;,&#39;H&#39;,&#39;I&#39;,&#39;J&#39;,&#39;K&#39;,&#39;L&#39;,&#39;M&#39;,&#39;N&#39;,&#39;O&#39;,&#39;P&#39;,&#39;Q&#39;,&#39;R&#39;,&#39;S&#39;,&#39;T&#39;,&#39;U&#39;,&#39;V&#39;,&#39;W&#39;,&#39;X&#39;,&#39;Y&#39;,&#39;Z&#39;,&#39;0&#39;,&#39;1&#39;,&#39;2&#39;,&#39;3&#39;,&#39;4&#39;,&#39;5&#39;,&#39;6&#39;,&#39;7&#39;,&#39;8&#39;,&#39;9&#39;);
$random = &#39;&#39;;
for ($i=0; $i < 16; $i++) { 
 $random.=$base[array_rand($base)];
}
echo $random;
?>
로그인 후 복사

array_rand는 배열의 임의의 키 값을 반환하는데, 이는 mt_rand() 함수와 다소 유사하며, 그냥 유연하게 사용하면 됩니다.

4. 셔플 기능

<?php
$base = array(&#39;a&#39;,&#39;b&#39;,&#39;c&#39;,&#39;d&#39;,&#39;e&#39;,&#39;f&#39;,&#39;g&#39;,&#39;h&#39;,&#39;i&#39;,&#39;j&#39;,&#39;k&#39;,&#39;l&#39;,&#39;m&#39;,&#39;n&#39;,&#39;o&#39;,&#39;p&#39;,&#39;q&#39;,&#39;r&#39;,&#39;s&#39;,&#39;t&#39;,&#39;u&#39;,&#39;v&#39;,&#39;w&#39;,&#39;x&#39;,&#39;y&#39;,&#39;z&#39;,&#39;A&#39;,&#39;B&#39;,&#39;C&#39;,&#39;D&#39;,&#39;E&#39;,&#39;F&#39;,&#39;G&#39;,&#39;H&#39;,&#39;I&#39;,&#39;J&#39;,&#39;K&#39;,&#39;L&#39;,&#39;M&#39;,&#39;N&#39;,&#39;O&#39;,&#39;P&#39;,&#39;Q&#39;,&#39;R&#39;,&#39;S&#39;,&#39;T&#39;,&#39;U&#39;,&#39;V&#39;,&#39;W&#39;,&#39;X&#39;,&#39;Y&#39;,&#39;Z&#39;,&#39;0&#39;,&#39;1&#39;,&#39;2&#39;,&#39;3&#39;,&#39;4&#39;,&#39;5&#39;,&#39;6&#39;,&#39;7&#39;,&#39;8&#39;,&#39;9&#39;);
if(shuffle($base)){
 print_r($base);
}
?>
로그인 후 복사

셔플 기능은 배열의 순서를 방해하는 것으로, 여기서는 약간 무작위로 배치됩니다. 반환 값은 부울 값으로, 이는 원래 변수를 직접 참조하는 것과 동일합니다.

5. str_shuffle 함수

<?php
$base = &#39;abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789&#39;;
echo str_shuffle($base);
?>
로그인 후 복사

str_shuffle의 함수는 shuffle의 함수와 유사하지만 유일한 차이점은 str_shuffle의 원래 문자열이 변경되지 않는다는 것입니다.

6. uniqid 함수

<?php
echo uniqid();
//54f806528172f
?>
로그인 후 복사

uniqid는 고유한 문자열을 생성할 수 있습니다. 이 애플리케이션의 범위는 상당히 넓습니다.

권장 학습: "PHP 비디오 튜토리얼"

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

관련 라벨:
php
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿