Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
对ColdFusion语法感到困惑(引号和磅符号)_Coldfusion - Fatal编程技术网

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

对ColdFusion语法感到困惑(引号和磅符号),coldfusion,Coldfusion,我对两种不同的语法感到困惑,想知道哪一种被认为是使用ColdFusion进行编程的好方法 在第一个示例中,returnvariable没有使用双引号。CFSET变量也不是: <cfinvoke component="#UserObj#" method="MyMethod" username="#MyUserName#" Returnvariable= ReturnVar><!--- No double quotes ---> <!-

我对两种不同的语法感到困惑,想知道哪一种被认为是使用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>

看起来我可以同时使用这两种样式,而且其中任何一种都可以使用?

如果您正在寻找良好的编程实践,您应该先不要使用
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)>