在我被要求研究冷融合应用程序中一些奇怪的间歇性错误之前,我没有使用过冷融合。
在阅读了范围后,我认为问题是因为我的 cfc 函数中的变量都没有使用var
关键字,并且在各种函数中使用了相同的变量名。因此,据我了解,变量的范围是页面级别,调用这些函数的不同线程将覆盖导致“奇怪”问题的变量。
我的问题是这样做的正确方法是什么?
<cfset var listCount = 0>
<cfquery name="qGetElementsByType" dbtype="query" maxrows="#arguments.num_to_return#">
SELECT elementId,
title, PIhtml, Rerhtml,
text, url, image, Rank, isPoll, pollId, subjectId
FROM arguments.element_query
WHERE <cfloop list="#arguments.element_type_id#" index="lcv">
<cfif listCount GT 0>
OR
</cfif>
subjectid = #lcv#
<cfset listCount = listCount + 1>
</cfloop>
</cfquery>
是否var
需要在每次设置 listCount 变量时添加,还是仅在初始声明时添加?