2014-10-02 48 views
0

我在玩PHP,目前我正在使用case switch函數。我想創建最多100個隨機數,並根據隨機數輸出回顯消息。PHP案例切換打印消息

我的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

你爲什麼要將一個隨機數與字符串「range1」進行比較? – slugonamission 2014-10-02 09:15:11

回答

3

rand函數將返回你設置爲2個參數的極限之間的數字,在這種情況下,1,並且$limit

值當你不字range串聯您$number變量,它永遠不會返回一個值,請注意以下幾點:

$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

您的病情很糟糕。閱讀關於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 
} 
0

$數將不回你的開關關鍵字「範圍」,但它會返回一個整數值! 簡單地把你的if條件作爲case語句並分別打印price-size

0

你正在向交換機傳遞一個隨機數並期待一個字符串,你將永遠無法顯示任何消息,除非你把它在默認情況下。