這兩個PHP比較是否完全一樣?我的意思是,這兩個表述的結果是否相同?有和沒有括號?帶或不帶括號的PHP比較
沒有括號:
if ($params['isAjax'] == '1' && $isEnabled == '1') {
...
}
並與以方括號每個語句:
if (($params['isAjax'] == '1') && ($isEnabled == '1')) {
...
}
此外,這是更好方法。一個人優於另一個嗎?謝謝。
這兩個PHP比較是否完全一樣?我的意思是,這兩個表述的結果是否相同?有和沒有括號?帶或不帶括號的PHP比較
沒有括號:
if ($params['isAjax'] == '1' && $isEnabled == '1') {
...
}
並與以方括號每個語句:
if (($params['isAjax'] == '1') && ($isEnabled == '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)
是真實的)。
是的,它們完全一樣。 – 2014-08-27 16:25:19
方括號只有在運算符優先級會改變你的邏輯時才需要:http://php.net/manual/en/language.operators.precedence.php – jeroen 2014-08-27 16:27:10
至於哪一個更好或更優,這只是一個意見問題(在我看來)。 – 2014-08-27 16:32:43