我对两种不同的语法风格感到困惑,并想知道哪一种被认为是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>
在第二个示例中,代码是,使用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#">
看起来我可以同时使用这两种样式,哪一种都可以使用?
答案 0 :(得分:5)
如果您正在寻找良好的编程习惯,首先应该不使用cfinvoke
如果您使用的是ColdFusion 9或更高版本,则可以使用以下语法。
<cfset userObj = new UserObj()>
<cfset returnVar = userObj.MyMethod(MyUserName)>
<cfset session.userright = returnVar>
或者您可以通过消除变量的额外设置来进一步简化
<cfset userObj = new UserObj()>
<cfset session.userright = userObj.MyMethod(MyUserName)>
设置变量时无需使用"
或#
。我还建议不要使用名为retVar
或returnVar
或somethingThatDoesn'tExplainWhatItIs
的任何类型的变量