2010-08-21 28 views
3

如果我想要採取行動,如果PHP如果變量不是0,1或2,我該怎麼做?我的if語句不起作用。謝謝!檢查變量是否與幾個值不同

+0

下次您應該嘗試總結標題中的問題; 「簡單的PHP問題」沒有提供比標籤更多的信息。 – meagar 2010-08-21 02:00:34

+1

這只是一個太多的'如果'的問題。也許你應該用'switch'去! ;) – Frankie 2010-08-21 02:42:11

+1

'switch($ x){case 0:case 1:case 2:break;默認:/ *採取行動* /}'? Eeewwwwww。 :) – cHao 2010-08-21 09:37:51

回答

7
if (($var != 0) && ($var != 1) && ($var != 2)) { 
    //... 
} 

或...

if (!in_array($var, array(0, 1, 2))) { /* ... */ } 

logical operators

+1

@Leticia:你還應該在下次發佈你的代碼,以便我們可以看到你的錯誤。 – casablanca 2010-08-21 01:52:34

+0

@讓我建議在開始編寫腳本之前閱讀更多關於PHP的信息。你可以從這裏開始:http://www.w3schools.com/php/default.asp – Artefacto 2010-08-21 01:53:07

+0

+1 in_array()。 – TRiG 2012-11-29 21:15:56

5

的最直接方式:

if ($x != 0 && $x != 1 && $x != 2) 
{ 
    // take action! 
} 

如果你知道你的變量是一個int,那麼你也可以不喜歡:

if ($x < 0 || $x > 2) 
{ 
    // take action! 
} 
0

使用&&運營商鏈測試,測試非 - 與!==平等,其中檢查類型值:

if($n !== 0 && $n !== 1 && $n !== 2) { 
    // it's not any of those values. 
} 

==操作者將強制值,所以所有的滿足下列條件:

  • 0 == '富'
  • 99 == '99balloons'
  • 真== 1
  • 假= =''

等等。有關=====的更多信息,請參見comparison operators。還要查看錶格「與各種類型的比較」,以便更好地瞭解如果比較非數字時類型是如何被強制的。只有您可以確定if($n < 0 || $n > 2)是否能滿足您的需求。 (好吧,我們可以提供幫助,但我們需要更多細節。)

有關更多&&||的更多信息,請參閱logical operators

+1

'if($ n < 0 && $n > 2)'永遠不會滿足正確的需求。它永遠不會是真的。 :) – cHao 2010-08-21 02:06:12

+1

呃,固定。 :) – 2010-08-22 01:20:28

相關問題