2011-07-01 109 views
1

目前,我有下面的代碼行1條if語句中是否可以有2個條件?

elseif($_POST['aspam'] != 'fire'){ 
print "Is ice really hotter than fire?"; 
} 

是否有任何形式的OR函數在PHP?好像在說...

$_POST['aspam'] != 'fire' OR !='Fire' 

或者讓我的數值不區分大小寫? 希望這是有道理的...

回答

3

||or(小寫)運算符。

elseif($_POST['aspam'] != 'fire' || $_POST['aspam'] != 'Fire'){ 
    print "Is ice really hotter than fire?"; 
} 
3

當然。

$_POST['aspam'] != 'fire' or $_POST['aspam'] !='Fire' 

請記住,每個條件是分開的。說or != 'Fire'不會自動將其解釋爲or $_POST['aspam'] != 'Fire'。他們被稱爲logical operators

比較小寫:

strtolower($_POST['aspam'] != 'fire' 
+0

那簡單嗎?!輝煌,謝謝 – Liam

1

是。

if (first condition || second condition){ 
your code 
} 

該OR由2個管道 - ||表示。

更多的東西: 您也可以和:

if(first condition && second condition){ 
Your code... 
} 

因此,由& &

1

這是邏輯OR

$_POST['aspam'] != 'fire' || !='Fire' 

表示,這是個案不靈敏(ToLower功能)

strtolower($_POST['aspam']) != 'fire' 
+0

謝謝@jonathan,我可以問問strtolower使我的價值全部小寫,因此不管它的輸入應該如何工作? – Liam

+0

http://us.php.net/manual/en/function.strtolower.php – webbiedave

+0

@Liam:是的,這就是strlower函數的作用。所以「火」或「火」會產生「火」的輸出。 http://php.net/manual/en/function.strtolower.php – Ray

1

使用strtolower($_POST['aspam'])!='fire'

2

甲PHP OR||創建,AND&&等創建所以,你的代碼示例如下所示:

if (($_POST['aspam'] != 'fire') || ($_POST['aspam'] != 'Fire')) 

然而,在你的情況下,它會更好:

if (strtolower($_POST['aspam']) != 'fire') 
3

你可以做兩個條件是這樣的:

if($_POST['aspam'] != 'fire' || $_POST['aspam'] != 'Fire') 

如果我是你在這種情況下,我會這樣做:

if(strtolower($_POST['aspam']) != 'fire') 
1

如果你想使你的變量情況下的檢查不敏感,可以使用下面的代碼

if(strtolower($_POST['aspam'])!='fire') 
    echo "this is matching"; 
1

或可選擇地使我的價值不 區分大小寫?

if (strtolower($_POST['aspam']) != 'fire'){ 

} 
2

PHP中不同的邏輯運算符。

用於「OR」兩個管道:

$_POST['aspam'] != 'fire' || !='Fire' 

這裏是所有運營商的鏈接: http://www.w3schools.com/PHP/php_operators.asp

+0

**很多**更好的鏈接到官方文檔:http://php.net/manual/en/language.operators.logical.php –

1

是的,這是可能的。試試這個:

elseif($_POST['aspam'] != 'fire' || $_POST['aspam'] != 'Fire') 
0

你可以使用不區分大小寫字符串比較:

if (strcasecmp($_POST['aspam'], 'fire') !== 0) { 
    print "Is ice really hotter than fire?"; 
} 

或列表:

if (!in_array($_POST['aspam'], array('Fire','fire')) { 
    ... 
0

這裏最短的選項很可能是stristr

if (stristr($_POST["aspam"], "FIRE")) { 

I t進行不區分大小寫的搜索。要使其成爲固定長度的匹配,您可能需要strcasecmpstrncasecmp。 (但是我發現可讀性較差,並且在你的情況下看起來不太必要。)