PHP与或不与括号比较

时间:2014-08-27 16:24:40

标签: php comparison

这两个PHP比较是否完全相同?我的意思是,两个陈述的结果是否相同;有没有括号?

没有括号:

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

用括号括起每个陈述:

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

此外,这是更好的方法。一个优于另一个?感谢。

2 个答案:

答案 0 :(得分:2)

它们完全一样。操作顺序规定==&&之前评估。

http://php.net/manual/en/language.operators.precedence.php

答案 1 :(得分: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 )是真的)。​​