이 기사의 예에서는 PHP 무작위 복권의 사용을 설명합니다. 참고할 수 있도록 모든 사람과 공유하세요. 구체적인 분석은 다음과 같습니다.
1. 설정된 확률에 따라 무작위 추첨 결과를 얻습니다.
/**
* 복권 도구
*/
클래스 lottery_tool {
보호된 정적 $awardsArr;
보호된 정적 $proField = '확률';
보호된 정적 $proSum = 0;
보호된 정적 $checkAward = false;
const SUCCESS_CODE = 0;
const FAIL_CODE = -1;
//복권 데이터 확인
보호된 정적 함수 checkAwards(){
If (!is_array(self::$awardsArr) || 비어 있음(self::$awardsArr)) {
return self::$checkAward = false;
}
self::$proSum = 0;
foreach (self::$awardsArr as $_key => $award) {
self::$proSum = $award[self::$proField];
}
If (empty(self::$proSum)) {
return self::$checkAward = false;
}
return self::$checkAward = true;
}
보호된 정적 함수 SuccessRoll($rollKey){
return array('code' => self::SUCCESS_CODE, 'roll_key' => $rollKey, 'msg' => '롤 성공');
}
보호된 정적 함수failRoll($msg = 'rollfail'){
return array('code' => self::FAIL_CODE, 'msg' => $msg );
}
//복권
공개 정적 함수 롤() {
If (false == self::$checkAward) {
return self::failRoll('시상 데이터 형식이 올바르지 않습니다!');
}
$result = mt_rand(0, self::$proSum);
$proValue = 0;
foreach (self::$awardsArr as $_key => $value) {
$proValue = $value[self::$proField]
if ($result <= $proValue) {
return self::successRoll($_key);
}
}
return self::failRoll('wrong');
}
//확률 필드 이름 변경
공용 정적 함수 setProField($field = null) {
If (!empty($field)) {
self::$proField = $field;
}
}
//상품 설정
공개 정적 함수 setAwards($awards){
self::$awardsArr = $awards;
self::checkAwards();
}
}
2. 샘플 코드:
$awards = 배열(
'0' => array('pro' => 15, 'info' => '15% 가능성'),
'1' => array('pro' => 25, 'info' => '25% 확률'),
'2' => array('pro' => 40, 'info' => '40% 확률'),
'3' => array('pro' => 20, 'info' => '20% 가능성'),
);
lottery_tool::setProField('프로');
lottery_tool::setAwards($awards);
$결과 = 배열();
for ($i = 10000; $i --;) {
$result[] = lottery_tool::roll();
}
foreach($result as $key => $value) {
$awards[$value['roll_key']]['num'] ;
}
echo '
';
var_dump($awards);
실행 결과는 다음과 같습니다.
배열
0 =>
배열
'프로' => 정수 15
'정보' => 문자열 '15% 가능성'(길이=15)
'숫자' => 정수 1596
1 =>
배열
'프로' => 정수 25
'정보' => 문자열 '25% 가능성'(길이=15)
'숫자' => 정수 2484
2 =>
배열
'프로' => 정수 40
'정보' => 문자열 '40% 가능성'(길이=15)
'숫자' => 정수 3939
3 =>
배열
'프로' => 정수 20
'정보' => 문자열 '20% 가능성'(길이=15)
'숫자' => 정수 1981
이 기사가 모든 사람의 PHP 프로그래밍 설계에 도움이 되기를 바랍니다.