PHP案例开关打印消息

时间:2014-10-02 09:12:35

标签: php

我正在玩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';
            }
    }

我遇到的问题是消息没有显示.....我不知道我在哪里错了...?

4 个答案:

答案 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)

您正在向交换机传递一个随机数并期望一个字符串,您将永远无法显示任何消息,除非您将其置于默认情况下。