2012-10-02 81 views
0

我想要實現的是嵌套的條件,如if ((a = true && b = true) or (c = true && d = true)) {...}。這似乎不適合我。PHP嵌套如果條件

爲了進一步解釋:我有什麼我們可以稱之爲一個「頂」兩個變量,以及在什麼我們可以稱之爲「底部」的兩個變量。我需要做的是執行代碼,如果變量在'top'和'bottom'都是真的。

爲了更簡潔地說明:

if ((t1 = true && b1 = true) or 
    (t1 = true && b2 = true) or 
    (t2 = true && b1 = true) or 
    (t2 = true && b2 = true) 
) { 
    ...do some stuff... 
} 

我很想把它稱作「爲網格的問題有條件的聲明」 ......但它不是一個真正的網格的問題...但事實並非排序看起來像一個格子,如果你畫了它|X| ... s'yeah,如果你能告訴我一個很好的方法來做到這一點,你真了不起,而且如果你能告訴我我應該稱之爲什麼,那你超級棒。

回答

3

=用於分配,==被用來測試平等,===被用於測試平等和公平的類型。您需要使用=====,具體取決於t1,t2,b1,b2是否已經是布爾值或其他。也是亞當說的東西,除了or是完全有效的。

+1

嗯,我感覺有點傻;早些時候嘗試將它們檢查爲'!= false',但並未完全通過該函數。丹非常感謝你的清理。 –

2

您需要使用兩個等號==,而不是=。另外,你的變量需要在它們前面有$。而你的「或」應該是||

邏輯正常。

它應該是這樣的:

if (($t1 == true && $b1 == true) || 
    ($t1 == true && $b2 == true) || 
    ($t2 == true && $b1 == true) || 
    ($t2 == true && $b2 == true) 
) { 
    ...do some stuff... 
} 
+1

從技術上講,他可以使用'或',但我同意,這樣做會很荒謬。 – Brad

+0

我不知道。每天學些新東西 :)。 http://php.net/manual/en/language.operators.logical.php –

+0

爲什麼可笑? –

0

改變條件

if (($t1 == true && $b1 == true) or 
($t1 == true && $b2 == true) or 
($t2 == true && $b1 == true) or 
($t2 == true && $b2 == true) 
) 

=是賦值運算符==是比較操作符。