dmr
dmr

Reputation: 22323

When to use || vs. OR in ColdFusion in a <cfif>?

When do I use an "OR" vs a || in a ColdFusion cfif statement?

Upvotes: 3

Views: 11894

Answers (5)

Aaron Greenlee
Aaron Greenlee

Reputation: 4577

I prefer || in CFSCRIPT and OR in CFML.

Upvotes: 6

Eric Kolb
Eric Kolb

Reputation: 996

Double pipe (as well as double ampersand) are supported in ColdFusion since CF8. Since learning that, I always use double pipe/double ampersand instead of OR/AND. The reason why I code with this style is that "OR" is not completely descriptive with regards to the operation being performed. There's bitwise-OR, logical-OR, and logical-OR with short-circuiting.

Bitwise OR: 01 | 10 = 11

Logical OR: buildErrorsOn(form.varA) | buildErrorsOn(form.varB)

Logical OR (short-circuit): isDefined('url.doStuff') || isDefined('url.doStuff')

In just about any language you could use right now (Oracle seeming to be a notable exception), double pipe always means Logical-OR with short-circuiting. It's a precise notation.

Upvotes: 7

Matt Gutting
Matt Gutting

Reputation: 33

It looks like || has been supported since CF8. CF8 documentation

I always find "or" more intuitive. (For that matter, I always use "+" for string concatenation in SQL - or is that exclusive to SQL Server?)

Upvotes: 2

Goyuix
Goyuix

Reputation: 24330

There may be support in CF9 that brings parity to those keywords, though I couldn't find a reference to indicate that. Really, you are probably better off just using the OR keyword in CFIF, and saving the || for string concatenation in SQL queries.

Upvotes: 2

Tatu Ulmanen
Tatu Ulmanen

Reputation: 124758

Not sure about this, but it would appear that a cfif statement only supports OR, so the answer to your question is 'always'. See this:

Upvotes: 0

Related Questions