我#在我的应用程序中使用了每个动态值周围的符号,并在此处发布了我的一些代码以获得帮助后,我被告知不需要#在很多地方使用例如<cfif>语句.
所以我开始删除#符号,直到我意识到我打破了我的应用程序,因为我从标签的value=""属性中删除了#符号<cfprocparam>.
我很困惑:
#符号是某些地方而不是其他地方(不使用它的好处是什么?)<cfif>和<cfargument>标签突然需要<cfprocparam>标签?没有不一致(或者很少:你所引用的不一致都是不一致的),只是你不理解规则(这些规则非常基本).一切都在文档中:" 使用数字符号 "
简而言之,在CFML语句中,所有元素都被认为是CFML,因此不需要特别标记它们.例如:
<cfset myVar = someFunction(anArgument)>
Run Code Online (Sandbox Code Playgroud)
没有歧义那里myVar,someFunction和anArgument比CFML以外的任何构造,所以没有必要做这样的事情:
<cfset myVar = #someFunction(anArgument)#>
Run Code Online (Sandbox Code Playgroud)
有些人倾向于这样做.
在文本的中间或字符串中,对于什么是文本以及什么是CFML存在歧义,因此需要使用井号来标记它们.例如:
<cfset myVar = "The time is #now()#">
Run Code Online (Sandbox Code Playgroud)
我们必须在那里使用pound-signs来消除歧义,now()因为它是一个CFML语句,不仅仅是字符串的一部分,例如:
<cfset myVar = "CFML has a function now() which returns the current timestamp">
Run Code Online (Sandbox Code Playgroud)
相等:
<cfquery>
SELECT col1
FROM table2
WHERE col2 = #someValue#
</cfquery>
Run Code Online (Sandbox Code Playgroud)
在someValue没有标记它的情况下,将无法知道变量.
基本上就是这样.这并不复杂.
| 归档时间: |
|
| 查看次数: |
2274 次 |
| 最近记录: |