Nuc*_*eon 8 coldfusion coldfusion-9
这是我最近在CF9中遇到的一个非常奇怪的错误.任何人都知道它为什么会发生,如果我做错了什么,或者有可用的修补程序.请查看以下代码.我们取一个字符串,添加一个A,添加一个B,然后尝试添加一个C ......但我们得到的结果是"ababc".预期的结果是"abc".只有在参数传递和&=函数调用中的运算符中执行命名参数和隐式结构时,才会出现该错误.如果不存在这3个案例中的任何一个,则不会发生错误.有什么想法吗?
<cffunction name="test">
<cfargument name="widget">
<cfset var locals = StructNew()>
<cfreturn arguments.widget.value>
</cffunction>
<cfset return = "">
<cfset return &= "a">
<cfset return &= "b">
<cfset return &= test(widget = { value = "c" })>
<cfoutput>#return#</cfoutput>
Run Code Online (Sandbox Code Playgroud)
好吧:你在这里已经回答了你自己的问题:它发生是因为它是一个错误。错误发生。很高兴您花时间向 Adobe 提供有关此事的建议。
至于解决方法,这两种变体工作得很好:
<cfset return = "">
<cfset return &= "a">
<cfset return &= "b">
<cfset st = { value = "c" }><!--- refactor where the struct is created --->
<cfset return &= test(widget = st)>
<cfoutput>#return#</cfoutput>
Run Code Online (Sandbox Code Playgroud)
或者:
<cfset return = "">
<cfset return &= "a">
<cfset return &= "b">
<cfset temp = test(widget = { value = "c" })><!--- refactor where the function is called --->
<cfset return &= temp>
<cfoutput>#return#</cfoutput>
Run Code Online (Sandbox Code Playgroud)
你只需要做类似的事情,直到 Adobe 开始修复它:-(
| 归档时间: |
|
| 查看次数: |
199 次 |
| 最近记录: |