php代码
class NumberGame{ private $str="start<br>"; private $num=0; private $Fnum=0; private $snumarr=array(); private $arr_key=array(); function __construct($Fnum,$num,$snumarr){ if($Fnum>=1 && $num>$Fnum && is_array($snumarr) && count($snumarr)>0){ //$this->Fnum=$Fnum; //$this->num=$num; $this->snumarr=$snumarr; for($i=$Fnum;$i<=$num;$i++){ //rule 5 $this->arr_key=array_keys($snumarr); $typeB = strpbrk($i, current($this->arr_key) )?true:false; if($typeB){ $this->str.= current($snumarr)."(".$i.") <br>"; }else{ $this->rule($i); } } } } function rule($i){ $str=""; for($j=0;$j<count($this->snumarr);$j++){ $key=$this->arr_key[$j]; //var_dump($key); if(is_int($i/$key)){ $str.=$this->snumarr[$key]; } } if(empty($str)){ $str=$i."<br>"; }else{ $str.="(".$i.") <br>"; } $this->str.=$str; } function answer(){ return $this->str; } } $snumarr=array('3'=>'Fizz','5'=>'Buzz','7'=>'Whizz'); $ng=new NumberGame(1,100,$snumarr); echo $ng->answer();