在三分之一的时间内随机执行代码分支

时间:2015-08-03 07:03:32

标签: php

我有一个问题。所以我有以下代码:

protected function definir( $ticketInfos )
{
    if($ticketInfos->aInfosTicket["ProbabiliteGain"]>0)
    {
        $ticketInfos->setGainrecup( $this->getGain() );
    }
    else
    {
        $ticketInfos->setGainrecup( 0.0 );
    }
 }

ProbabiliteGain是一个恒定的女巫等于100.我想要赢得比赛为1/3。所以我想做2次:$ticketInfos->setGainrecup( $this->getGain() )和1次:$ticketInfos->setGainrecup( 0.0 );什么是最佳解决方案? Thx提前

1 个答案:

答案 0 :(得分:1)

我会通过使用php rand()函数来解决这个问题。

这样的事情:

protected function definir( $ticketInfos )
{
    $randomNumber = rand(1, 3);
    if($randomNumber < 3)
    {
        $ticketInfos->setGainrecup( $this->getGain() );
    }
    else
    {
        $ticketInfos->setGainrecup( 0.0 );
    }
 }

如果$ randomNumber为1或2,我们执行$ this-&gt; getGain(); 如果$ randomNumber为3,我们执行另一个函数。

您可以找到有关PHP rand函数here

的更多信息