2014-08-27 83 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)是真实的)。