1

我对 Coldfusion 不是很熟悉,但我正在阅读一些代码并看到了这个:

 <CFLOOP INDEX="element" LIST="#FIELDNAMES#">
    <CFSET REP_LIMIT = 0>
    <CFSET E_VALUE = EVALUATE(#ELEMENT#)>

我有两个问题:1)将 E_VALUE 设置为当前索引吗?如果是这样,评估是什么?和 2) 这是对 EVALUATE 的不良和/或危险使用吗?

4

1 回答 1

2

Evaluate 主要用于评估动态命名的变量,例如表单变量。如果您不知道可以从表单提交哪些表单变量,您可以通过访问 FORM.fieldnames 来简单地遍历字段名。

(http://cfprimer.blogspot.com/2005/03/avoid-evaluate.html)。在 14 年的 CF 编码中,我只见过它使用过几次。在我看来,将自己设置为事先不知道将提交哪些表单元素是一种不好的做法。

在您的示例中,索引设置为“元素”。因此,在循环时,“字段名”列表中的任何内容都将是一个元素。

如果您想输出这些字段名,您可以执行以下操作:

<cfset fieldnames = "firstname,lastname,email">
<cfoutput>
<cfloop index="element" list="#fieldnames#">
     #element#<br>
</cfloop>
</cfoutput>

这将输出如下:

firstname
lastname
email
于 2012-04-07T21:13:00.130 回答