CFQUERY 范围的问题

Issues with CFQUERY scope

据我所知

<cfquery name="groups">

等同于

<cfquery name="VARIABLES.groups">

在我的项目中,在不同的部分(在不同的函数中)有一个同名的 cfquery。

当有很多请求时,我开始收到来自 REST API (Coldfusion) 的奇怪响应,那里有不同的数据集。

通过实验,我意识到如果我在调用cfquery之前声明一个局部变量,这将解决问题,因为答案将准确地写入函数变量,而不是全局变量。

<cfset var groups = {} /> <cfquery name="groups">

此选项在所有测试用例中都能正常工作。

我的问题是:在函数内为 cfquery 声明局部变量是否正确,或者是否有其他方法可以避免我的问题?

您应该始终使用(在函数中时):

<cfset var groups = {} /> 
<cfquery name="groups">

or

<cfquery name="local.groups">

您还可以在函数内部使用局部作用域。如果不使用 var 你实际上是在创建一个全局变量。在函数内部使用 var 或 local 将再次保护您在函数外部写入变量。