2014-08-27 88 views
1

這兩個PHP比較是否完全一樣?我的意思是,這兩個表述的結果是否相同?有和沒有括號?帶或不帶括號的PHP比較

沒有括號:

if ($params['isAjax'] == '1' && $isEnabled == '1') { 
    ... 
} 

並與以方括號每個語句:

if (($params['isAjax'] == '1') && ($isEnabled == '1')) { 
    ... 
} 

此外,這是更好方法。一個人優於另一個嗎?謝謝。

+1

是的,它們完全一樣。 – 2014-08-27 16:25:19

+1

方括號只有在運算符優先級會改變你的邏輯時才需要:http://php.net/manual/en/language.operators.precedence.php – jeroen 2014-08-27 16:27:10

+0

至於哪一個更好或更優,這只是一個意見問題(在我看來)。 – 2014-08-27 16:32:43

回答

1

是它們在邏輯上等於

if ((true) && (true))

相同

if (true && true)

分組使用()是有效的語句時,你要組邏輯陳述

if ((true && true) || false) //true 
if ((true && false) || false) //false 
if ((true && false) || true) //true 
if ((true || false) && true) //true 
if ((true || false) && false) //false 

不進行分組這些語句會

if (true && true || false) //true 
if (true && false || false) //false 
if (true && false || true) //true 
if (true || false && true) //true 
if (true || false && false) //true <-- different 

分組報表,使其更具可讀性,以及刪除不想要的結果(我不知道(true || false && false)是真實的)。