对ColdFusion语法感到困惑(引号和磅符号)
我对两种不同的语法感到困惑,想知道哪一种被认为是使用ColdFusion进行编程的好方法 在第一个示例中,对ColdFusion语法感到困惑(引号和磅符号),coldfusion,Coldfusion,我对两种不同的语法感到困惑,想知道哪一种被认为是使用ColdFusion进行编程的好方法 在第一个示例中,returnvariable没有使用双引号。CFSET变量也不是: <cfinvoke component="#UserObj#" method="MyMethod" username="#MyUserName#" Returnvariable= ReturnVar><!--- No double quotes ---> <!-
returnvariable
没有使用双引号。CFSET变量也不是:
<cfinvoke component="#UserObj#" method="MyMethod"
username="#MyUserName#"
Returnvariable= ReturnVar><!--- No double quotes --->
<!--- No double quotes & no pound signs --->
<cfset session.userright = ReturnVar>
看起来我可以同时使用这两种样式,而且其中任何一种都可以使用?如果您正在寻找良好的编程实践,您应该先不要使用
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
或somethingthat't
,以下是一些关于常见CF错误的好信息。非常感谢。我正在使用CF10,实际上我正在使用以下命令调用我的组件:然后我使用了cfinvoke。那么这对CF 9及以上没有好处?我想我必须使用init(),如果您使用new,您可以将init参数传递到括号中
Matt,谢谢您让我知道。我想问一下,使用new而不是旧的init()和cfinvoke有什么好处?你能给我推荐一篇文章/帖子,解释如何使用newnew,如果它存在,它会自动调用init,这就是它的好处。如果将对象创建为变量,则根本不应该使用cfinvoke?这从来都不是个好主意。一旦创建了一个对象,您就可以使用这个答案中的语法简单地调用它的方法。使用cfinvoke将创建组件的另一个实例,这将是低效的。
<cfset userObj = new UserObj()>
<cfset session.userright = userObj.MyMethod(MyUserName)>