Syntax 何时在a<;中使用| | vs.或在ColdFusion中使用;cfif>;?

Syntax 何时在a<;中使用| | vs.或在ColdFusion中使用;cfif>;?,syntax,coldfusion,if-statement,Syntax,Coldfusion,If Statement,我什么时候在ColdFusion cfif语句中使用“OR”和| | |?对此不太确定,但cfif语句似乎只支持OR,因此您的问题的答案是“始终”。见此: CF9中可能有对这些关键字的对等支持,尽管我找不到一个参考来说明这一点。实际上,您最好只在CFIF中使用OR关键字,并保存| |,以便在SQL查询中进行字符串连接。看起来| |从CF8开始就得到了支持 我总是觉得“或”更直观。(就此而言,我总是在SQL中使用“+”进行字符串连接,或者这是SQL Server独有的?自CF8以来,ColdF

我什么时候在ColdFusion cfif语句中使用“OR”和| | |?

对此不太确定,但
cfif
语句似乎只支持OR,因此您的问题的答案是“始终”。见此:


CF9中可能有对这些关键字的对等支持,尽管我找不到一个参考来说明这一点。实际上,您最好只在CFIF中使用OR关键字,并保存| |,以便在SQL查询中进行字符串连接。

看起来| |从CF8开始就得到了支持

我总是觉得“或”更直观。(就此而言,我总是在SQL中使用“+”进行字符串连接,或者这是SQL Server独有的?

自CF8以来,ColdFusion中支持双管道(以及双符号)。从那以后,我总是用双管/双安培来代替或/和。我之所以使用这种风格编码,是因为“或”对于正在执行的操作不是完全描述性的。有按位OR、逻辑OR和逻辑OR与短路

按位或:
01 | 10=11

逻辑OR:
buildErrorsOn(form.varA)| buildErrorsOn(form.varB)

逻辑OR(短路):
isDefined('url.doStuff')| | isDefined('url.doStuff')


在您现在可以使用的任何语言中(Oracle似乎是一个显著的例外),double pipe总是表示逻辑或短路。这是一种精确的表示法。

我更喜欢用CFSCRIPT和/或CFML表示。

是的,因为sql“+”是特定于sql Server的。如果内存可用,Oracle会使用“| |”(令人困惑的;)、MySQL CONCAT(),…人们希望(或至少希望)至少在一个简单的逻辑运算符上达成一致:-/Haha。。我们可以希望。尽管我确实更喜欢| |和&&,但我必须承认,人们更可能把| |误认为|而不是误认为是| |和&&,而不是误认为是长手稿或和比特。至少一开始。。