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
->snumarr=
$snumarr
;
for
(
$i
=
$Fnum
;
$i
<=
$num
;
$i
++){
$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
];
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();