CF9 cfscript,在参数中传递动态数组

时间:2013-01-07 16:19:30

标签: coldfusion coldfusion-9 fw1

今年我开始提出一个很大的问题。 当我做的时候

myName = "Henry";
myCustomFunction( [ myName, "Thierry" ] );

它会抛出类似myName is undefined的错误。为什么呢?

我可以通过

来解决这个问题
myName = "Henry";
aMyArrayArgument = [ myName, "Thierry" ];
myCustomFunction( aMyArrayArgument );

但是,我想知道为什么Coldfusion不允许在参数中传递[ myName, "Thierry" ]

如果可以提供帮助,我会使用Framework One(FW / 1)。

谢谢!

2 个答案:

答案 0 :(得分:1)

如果我这样做:

 <cffunction name="xx" returntype="void">
     <cfargument name="x" type="array">
     <cfdump var="#arguments.x#">
 </cffunction>

 <cfset myname = "dan">
 <cfset xx([myname, 'bracuk']) >

代码运行没有错误,我看到转储。您的代码必须有其他内容。

答案 1 :(得分:1)

如果您的实际代码看起来更像这样:

if (something)
{
    myName = "Henry";
    myCustomFunction( argname=[ myName, "Thierry" ] );
}

然后是因为CF中的文字结构和数组符号编写得非常糟糕且错误。

如果您可以确认其中断的情况,raise an issue with Adobe(已经存在与此相关的几个问题;您可能或者不想检查重复项。)