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 将再次保护您在函数外部写入变量。
据我所知
<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 将再次保护您在函数外部写入变量。