Duplicate()函数如何帮助保护数据完整性?

时间:2010-12-24 20:15:38

标签: coldfusion

  1. 我想了解一下 Duplicate()函数的用途 当在变量之前使用它时 由函数返回。如果你这样会很好 可以提供一个什么时候的例子 使用Duplicate()很重要或 必要的。
  2. 它有其他用途吗?
  3. 我听过其他人在数据完整性的上下文中提到Duplicate(),我想更好地了解它是如何工作的以及何时使用它。

    我经常看到这个:

    <cfreturn Duplicate(local.myVariable)>
    

    当这也返回相同的结果时:

    <cfreturn local.myVariable>
    

2 个答案:

答案 0 :(得分:9)

虽然ColdFusion中的大多数变量都是passed by value,但结构不是 - passed by reference,如果你不小心,可能会导致无意中覆盖值。

使用Duplicate()在内存中的另一个位置创建一个相同的变量副本,这样当它通过引用传递时(注意你仍然通过引用传递,没有办法强制传递值)来自调用者的数据所做的任何更改都不会影响返回的来源。

答案 1 :(得分:2)

Duplicate用于按值传递变量而不是引用。

如果使用

,ColdFusion中的结构通常会通过引用传递

cfset struct1 = struct2

为了避免在更新struct2时更改struct1,我们使用

cfset struct1 = duplicate(struct2)

相关问题