ListAppend()不工作?
我的cfml代码有问题。ListAppend()不工作?,list,function,coldfusion,append,List,Function,Coldfusion,Append,我的cfml代码有问题。ListAppend()函数似乎不起作用 以下是my.cfm页面中的代码: <cfset fruitList="apple, orange, banana"> <cfoutput> fruitList before: #fruitList#<br> </cfoutput> <cfset temp = ListAppend(fruitList, "kiwi")> <cfoutput>
ListAppend()
函数似乎不起作用
以下是my.cfm页面中的代码:
<cfset fruitList="apple, orange, banana">
<cfoutput>
fruitList before: #fruitList#<br>
</cfoutput>
<cfset temp = ListAppend(fruitList, "kiwi")>
<cfoutput>
fruitList after: #fruitList#<br>
</cfoutput>
之前的结果列表:#结果列表#
结果列表后:#结果列表#
但我总是得到这样的输出:
之前的水果清单:苹果、橘子、香蕉
苹果、橘子、香蕉之后的水果列表
这同样适用于ListPrepend()
和ListInsertAt()
。为什么会发生这种情况
非常感谢您的帮助。listAppend()返回新列表(列表只是字符串,ColdFusion通过值传递),因此为了让您看到附加值,您需要使用:
<cfset fruitlist = ListAppend(fruitList, "kiwi") />
试试看
之前的结果列表:#结果列表#
结果列表后:#结果列表#
Accord to cfquickdocs listAppend返回带有附加值的列表。
我希望这能有所帮助。事实上,在您的示例中,您添加到列表中很好。然而,您正在创建一个新的列表“temp”,并将水果列表的内容复制到其中,然后添加猕猴桃
<cfset temp = ListAppend(fruitList, "kiwi")>
如果要转储临时列表,您将看到希望看到的列表
<cfdump var="#temp#">
您需要使用
当您遇到有关函数行为的问题时,最好先使用。因为它会立刻回答你的问题;):ListAppend
-“返回列表的副本,并附加[新]值”Yep,不同于表兄妹ArrayAppend()
和StructAppend()
,ListAppend()
不会通过引用改变第一个参数。Mohsin为自己辩护时,这个问题出现在Google上,帮助我记住我需要将返回值分配回列表,而正如@Mike Causer提到的,是ArrayAppend()和StructAppend()。从很久以前开始,这是一个一致性的疏忽,我经常忘记。我没有注意到这一点。非常感谢你。
<cfdump var="#temp#">