我有一個循環,我使用回聲出項目的數量:PHP IF,AND,OR與第二或破壞
$i = 1;
[content]
$i++;
在我的內容我想獲得一個if語句來運作方式爲關閉值的$i
if ($user_id == 2 and $i != 1 || $i != 2) {
}
如果我離開了這部分:|| $i != 2
它的工作原理然而,隨着它的腳本失敗並返回true。
我怎樣才能得到它與1和2值?
我有一個循環,我使用回聲出項目的數量:PHP IF,AND,OR與第二或破壞
$i = 1;
[content]
$i++;
在我的內容我想獲得一個if語句來運作方式爲關閉值的$i
if ($user_id == 2 and $i != 1 || $i != 2) {
}
如果我離開了這部分:|| $i != 2
它的工作原理然而,隨着它的腳本失敗並返回true。
我怎樣才能得到它與1和2值?
概述
我會使用&&
代替and
,這是很好的總是整理更復雜IF
語句用括號使
一)在美學上可以看到解析順序
b)您可以手動設置解析順序,尤其是與PHP的優先級不同時
修正
話雖這麼說:
你想要的條件觸發如果
$user_id
是2
AND $i
沒有1
,或$i
沒有2
所以,你可以這樣做:
if(($user_id == 2 && $i != 1) || ($i != 2)){
//...
在這裏你可以看到兩個命令都通過自己的括號括起來分離。
證明
$i = 1
和$user_id = 1
:第一托架是false
,第二托架是true
,條件火災$i = 1
和$user_id = 2
:第一托架是false
,第二支架是true
,條件發生火災$i = 2
和$user_id = 1
:第一托架是false
,第二托架是false
,條件不觸發$i = 2
和user_id = 2
:第一托架是true
,第二托架是false
,條件火災你真正想要的是和運算符。
if ($user_id == 2 and $i != 1 and $i != 2) {
...
}
爲了執行if塊的內容,你需要所有這些條件都是真的,所以你是需要的操作符。
使用'()'來強制你想要的解析順序?現在你讓PHP根據自己的[運算符優先級]選擇順序(http://php.net/manual/en/language.operators.precedence.php)。養成總是指定'()'的習慣,不管默認順序是否是你想要的。那麼您不必擔心回憶您所使用的任何語言的優先規則,並且可以始終執行您所期望的順序。 –
不應該是'if($ user_id == 2 && $ i!= 1 && $ i!= 2)'? –
'if($ user_id == 2 and($ i!= 1 || $ i!= 2))' - *我認爲*。如果沒有,我會拿子彈;-)所以開槍射擊! –