0

我正在尝试创建一个自定义调试工具,我需要使用一个包含两个独立功能的组件。第一个函数 ( startTimer) 有一些参数,例如,startCount另一个函数 ( endTimer) 有endCount。我想要完成的是类似于以下代码:

<cffunction name="startTimer" access="public" returntype="void">
    <cfargument name="startActionTime" type="string" required="no">
</cffunction>

<cffunction name="endTimer" returntype="void" access="public">
    <cfargument name="endActionTime" type="string" required="no">

    <cfset finalTime = endActionTime - startTimer.startActionTime>

    <!---Some SQL will go here to record the data in a db table --->

</cffunction>

这就是我调用函数的方式

<cfscript>
    location = CreateObject("component","timer");

    loc =location.startTimer(
        startActionTime = getTickCount()
    );


    end = location.endTimer(
        endActionTime = getTickCount()
    );


</cfscript>

我想我遇到了范围问题,因为当我尝试运行代码时,我在startTimer.startActionTime. 做这样的事情的正确方法是什么?

4

1 回答 1

4

您可以variables像这样使用范围:

<cfcomponent>

  <cfset variables.startActionTime = 0>

  <cffunction name="startTimer" access="public" returntype="void">
    <cfargument name="startActionTime" type="numeric" required="no">

    <cfset variables.startActionTime = arguments.startActionTime>
  </cffunction>

  <cffunction name="endTimer" returntype="string" access="public">
    <cfargument name="endActionTime" type="numeric" required="no">

    <cfset finalTime = endActionTime - variables.startActionTime>

    <!---Some SQL will go here to record the data in a db table --->
    <Cfreturn finaltime>

  </cffunction>

</cfcomponent>

来自 Adob​​e Docs:在 CFC 中创建的变量范围变量仅可用于组件及其函数,而不能用于实例化组件或调用其函数的页面。

于 2013-05-20T19:06:03.513 回答