这两个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