我正在玩PHP,目前我正在使用case switch
函数。我想创建最多100个随机数,并根据随机数输出回显消息。
我的PHP代码:
$number = rand(1, $limit);
switch($number){
case "range1":
if($number >=1 || $number <=25 ){
print 'You win nothihg';
}else{
print 'Your Score is: '.$number;
}
break;
case "range2":
if($number >25 || $number <=50 ){
print 'You win Small Prize';
}else{
print 'Your Score is: '.$number;
}
break;
case "range3":
if($number >50 || $number <=75 ){
print 'You win Medium Prize';
}else{
print 'Your Score is: '.$number;
}
break;
case "range4":
if($number >75 || $number <=100){
print 'You win Large Prize';
}else{
print 'Your Score is: '.$number;
}
break;
default:
if($number <=75) {
print 'Keep tryintg untill you win Large';
}
}
我遇到的问题是消息没有显示.....我不知道我在哪里错了...?
答案 0 :(得分:3)
rand
函数会在您设置为2个参数的限制之间返回一个数字,在本例中为1
,值为$limit
由于您没有将$number
变量与单词range
连在一起,因此永远不会将其作为值返回,请注意:
$number = rand(1,2);
//$number = 1 or 2
switch($number):
//possible cases are case '1' and case '2'
endswitch;
如果您希望将range
连接起来,那么:
$number = 'range' . rand(1,$limit);
答案 1 :(得分:1)
你的病情很糟糕。阅读关于rand的手册,它返回int值。 另请阅读switch上的手册,如果情况条件为真,则通常切换进入大小写块。在您的情况下,“range1”..“range [n]”与int数相比总是假的。
我会用这样的东西:
switch($number){
case $number<=1:
echo "less than one";
break;
case $number<=50:
echo "less than 50";
break;
default:
//do something default
}
答案 2 :(得分:0)
$ number不会返回你的switch关键字'range',但会返回一个整数值! 只需将您的If条件作为案例陈述并分别打印价格大小
答案 3 :(得分:0)
您正在向交换机传递一个随机数并期望一个字符串,您将永远无法显示任何消息,除非您将其置于默认情况下。