对ColdFusion语法感到困惑(引号和井号)

use*_*679 2 coldfusion

我对两种不同的语法风格感到困惑,并想知道哪一种被认为是ColdFusion的一种优秀编程实践.

在第一个示例中,returnvariable不使用双引号.CFSET变量也不是:

<cfinvoke component="#UserObj#" method="MyMethod" 
       username="#MyUserName#" 
       Returnvariable= ReturnVar><!--- No double quotes --->

<!--- No double quotes & no pound signs --->
<cfset session.userright = ReturnVar>
Run Code Online (Sandbox Code Playgroud)

在第二个例子中,代码使用为双引号Returnvariable和用于CFSET.第一个设置为ReturnVar,而另一个设置为双引号和井号"#RetunsVar#"

<cfinvoke component="#UserObj#" method="MyMethod" 
       username="#MyUserName#" 
       Returnvariable= "ReturnVar"><!--- using double quotes  --->

<!--- using double quotes & pound signs --->
<cfset session.userright = "#ReturnVar#">
Run Code Online (Sandbox Code Playgroud)

看起来我可以使用这两种风格,哪一种都可以使用?

Mat*_*che 5

如果您正在寻找良好的编程习惯,您应该从不使用开始 cfinvoke

如果您使用的是ColdFusion 9或更高版本,则可以使用以下语法.

<cfset userObj = new UserObj()>
<cfset returnVar = userObj.MyMethod(MyUserName)>
<cfset session.userright = returnVar>
Run Code Online (Sandbox Code Playgroud)

或者,您可以通过消除变量的额外设置来进一步简化

<cfset userObj = new UserObj()>
<cfset session.userright = userObj.MyMethod(MyUserName)>
Run Code Online (Sandbox Code Playgroud)

无需使用"#设置变量.我也建议不要使用任何类型的变量命名retVarreturnVarsomethingThatDoesn'tExplainWhatItIs