/** * Gets a winning variant. * * @param $salt string * @return mixed */ public function getVariant($salt) { // No chance of winning if ($this->oddsTotal == 0) { return null; } // First variant is a sure winner if (reset($this->variants) >= 100) { return (string) key($this->variants); } // Time to roll $roll = $this->roller->getRoll($salt); foreach ($this->variants as $variant => $odds) { if ($roll < $odds) { return (string) $variant; } } // Loser return null; }