Coldfusion 基于脚本的保留关键字不接受,但它';让我们接受标签

Coldfusion 基于脚本的保留关键字不接受,但它';让我们接受标签,coldfusion,cfml,coldfusion-11,reserved-words,Coldfusion,Cfml,Coldfusion 11,Reserved Words,这里我提出了一个关于保留字的问题。据我所知,关键字不能是变量 我遇到了一个问题,即在两个基于脚本的代码中都将保留字字符串作为参数传递,但在基于标记的代码中编写相同的代码时不会遇到任何错误。我的问题是,我将参数名传递为的。如果它是保留字,则意味着我们不能同时使用基于标记和脚本的权限保留字在基于标记的代码中是如何接受的?如果我理解错误,请纠正我 FYR:我已经附上了我的代码和基于标记的代码的成功结果,以及基于脚本的代码的错误 <cfset testCall = callFunc( a=10,F

这里我提出了一个关于保留字的问题。据我所知,关键字不能是变量

我遇到了一个问题,即在两个基于脚本的代码中都将保留字字符串作为参数传递,但在基于标记的代码中编写相同的代码时不会遇到任何错误。我的问题是,我将参数名传递为
的。如果它是保留字,则意味着我们不能同时使用基于标记和脚本的权限保留字在基于标记的代码中是如何接受的?如果我理解错误,请纠正我

FYR:我已经附上了我的代码和基于标记的代码的成功结果,以及基于脚本的代码的错误

<cfset testCall = callFunc( a=10,For=20)>
Out put :#testCall#

<cfscript>
    testCall = callFunc( a=10,For=20);
    writeDump(testCall);

</cfscript>

<cffunction name="callFunc" access="public" returntype="Any">
    <cfargument name="a" required="true">
    <cfargument name="For" required="true">
    <cfreturn ARGUMENTS.a * ARGUMENTS.For>
</cffunction>

输出:#测试呼叫#
testCall=callFunc(a=10,For=20);
writeDump(testCall);
输出:200(这是基于标记的输出)

下面的问题是基于脚本的代码


有人知道为什么会这样吗?如果我错了,请纠正我,明白吗。提前谢谢

一,。什么版本的ColdFusion?2.我怀疑这是一个未记录的反功能。就我们所知,
callFunc
是ColdFusion内部如何做事情的。考虑到一个bug报告,我唯一能想到的是< <代码> > <代码>在标签语言中并不意味着什么。标签中没有
for
循环(至少在该语法中没有),它只在脚本中使用。我不会尝试在任何语言中将
for
用作变量名;-)保留字太常见了,可能没有
标记,但它肯定用在cfscript中。我的猜测是,您遇到了一些内部cfscript解析器,该解析器将
for
视为该上下文中的一个命令。(续)注意,关于?如果您想将CFML代码转换为cfscript,很遗憾,您可能必须更改一些变量名。(编辑)他们使用“final”作为变量名?哎呀!CFML和CFScript是两种不同的“语言”(因为没有更好的词)。虽然您可能希望任何CFML代码在cfscript中都能以完全相同的方式工作,但您不能依赖于此。CFScript有CFML没有的语法元素。因此,有些东西会在其中一个词中起作用或保留,但在另一个词中则不起作用。