查看CFC中的以下功能(我正在使用ColdFusion 9)。
假设oldObject is true
和那个it is type 1
,ColdFusion会一直持续到函数结束并创建新对象,或者它在<cfset respond(result=false)>
上“破灭”并中止任何在功能中进一步处理?
<cffunction name="myFunction" access="private">
<cfargument name="key">
<cfset oldObj = model("myModel").findOne(arguments.key)>
<cfset local.data = 1>
<cfif isObject(oldObj)>
<cfif oldObj IS 1>
<cfset respond(result=false)>
<cfelse>
<cfset local.data = 2>
</cfif>
</cfif>
<cfset newObj.new(local.data)>
<cffunction>
这个想法是这样的:
oldObject
(1)存在且(2)属于类型1,则会破坏并且不执行任何操作。local.data
并创建新对象。 local.data
创建新对象。respond()函数只是通过JSON结构向用户返回数据。我省略了很多代码,因为这是一个理论问题。
答案 0 :(得分:2)
您的算法一直持续到函数的末尾。只有<cfreturn>
才会在结束前退出该函数。因此总是会<cfset newObj.new(local.data)>
到达。
要输出内联JSON(即<cfoutput>#json#</cfoutput>
。),请确保respond()
未指定<cffunction name="respond" output="false" ...>
。
注意,假设这些函数所在的较大对象是有状态的,则更简洁的方法是使用适当的客户端调用方法。让对象在内部拼凑响应作为其状态的一部分。最后,客户端调用getResponse()
函数的行。