我无法弄清楚这一点。
我需要一个解决方案来调用随机函数的百分比。
实施例。脚本调用subscriptions()的可能性为10%,系统调用函数“specialitems()”的概率为3%。
我被困在这里,所以我希望有人可以帮我解决这个问题。
<?php
class RandomGifts {
public $chances = '';
public function __construct($user) {
$this->user = $user;
//Find percent for each function
$this->chances = array(
'subscriptions' => 10, // 10%
'specialitems' => 3, // 5%
'normalitems' => 30, // 40%
'fuser' => 50, // 70%
'giftcards' => 7, // 7%
);
//This should call the function which has been calculated.
self::callFunction(?);
}
public function subscriptions(){}
public function specialitems(){}
public function normalitems(){}
public function fuser(){}
public function giftcards(){}
}
?>
答案 0 :(得分:4)
试试这个:
$a = rand(1, 100);
$total = 0;
$f = '';
foreach($this->chances as $function => $percent) {
$total += $percent;
if($a <= $total) {
$f = $function;
break;
}
}
if(!empty($f))
$this->$f();
百分比不应该添加到100以上的任何值。如果总和低于100,那么剩余的百分比是“什么也不做”。
答案 1 :(得分:-1)
然后用你的类和$ var名称来调用函数。
$this->$var();