来源:その他FizzBuzzWhizz :http://www.oschina.net/code/snippet_1414453_35450;
正则复习 php class,写的不太好,抛砖引玉。
class NumberGame{- private $str="start
";
- プライベート $num=0;
- プライベート $Fnum=0;
- プライベート $sumarr=array();
- プライベート $arr_key=array();
- 関数 __construct($Fnum,$num,$sumarr){
- if($ Fnum>=1 && $num>$Fnum && is_array($sumarr) && count($sumarr)>0){
- //$this->Fnum=$Fnum;
- //$this->num= $num;
- $this->sumarr=$sumarr;
- for($i=$Fnum;$i //ルール 5
- $this->arr_key=array_keys($ sumarr);
- $typeB = strpbrk($i, current($this->arr_key) )?true:false;
- if($typeB){
- $this->str.= current($sumarr)。 (".$i.")
"; - }else{
- $this->rule($i);
- }
- }
- }
- }
- 関数ルール($i){
- $str="";
- for($j=0;$jsumarr);$j++){
- $ key=$this->arr_key[$j];
- //var_dump($key);
- if(is_int($i/$key)){
- $str.=$this->sumarr[$key] ;
- }
- }
- if(empty($str)){
- $str=$i."
"; - }else{
- $str.= " (".$i.")
;"; - }
- $this->str.=$str;
- }
- function Answer(){
- return $this->str;
- }
- }
- $sumarr=array('3'= >'フィズ','5'=>'バズ','7'=>'ウィズ');
-
- $ng=new NumberGame(1,100,$sumarr);
-
- echo $ng->答え();
-
复制代
|