这两个条件陈述的评估方式有何不同?
<cfif Catalog_Id eq 123 or Catalog_Id eq 456 and CatalogType eq 1></cfif>
<cfif (Catalog_Id eq 123 or Catalog_Id eq 456) and CatalogType eq 1></cfif>
从我记得的情况来看,条件陈述将从左到右进行评估。这意味着将评估OR语句,然后评估AND条件。
在这种情况下,括号是必要的还是仅仅是为了便于阅读?是否会以相同的顺序对所有语言进行评估?
更新
出于某种原因,我无法将疲惫的大脑包裹在这个执行方式的概念中。一旦有人指出显而易见的事,我就醒了,想知道我自己怎么也找不到答案。啊。
答案 0 :(得分:3)
第一个语句被评估为Catalog_Id eq 123
或(Catalog_Id eq 456 and CatalogType eq 1)
第二个语句被评估为(Catalog_Id eq 123 or Catalog_Id eq 456)
AND CatalogType eq 1
这是两个不同的陈述。查看Adobe的Operator precedence and evaluation ordering