29

为了调试,我想将某些变量转储到我的网页上。我怎样才能从 cfscript 标签内做到这一点?

我尝试了以下方法,但它不起作用:

<cfscript>
  ...
  <cfif cgi.REMOTE_ADDR eq "IP">
    <cfdump var="#var1#"><br/>
  </cfif>
  ...
</cfscript>

关于可以做什么的任何线索?

4

7 回答 7

43

在 CF 9 之前的版本中,您不能直接这样做。但是,您可以使用CFLib 中的dump() UDF。那里有一整个 UDF 库,它们模仿没有直接 CFSCRIPT 等效项的 CF 标记。

ColdFusion 9(及更高版本)提供了该writeDump()功能。

用于WriteDump()函数的 Adob​​e文档链接

于 2009-05-19T16:56:31.950 回答
32

像使用 writeOutput() 一样使用 writeDump()

请参阅CF 9 参考上的writeDump

于 2011-01-17T20:34:42.533 回答
5

以下是不是更容易和直接?

oAdmin = createObject("component", "cfide.adminapi.base");
oAdmin.dump(myVar);

它适用于 CF7 及更高版本,甚至可能更早。

于 2012-02-17T22:02:46.943 回答
3

自己编写也相当容易。您只需在 cfml 而不是 cfscript 中定义一个函数。您也可以使用它来执行 cfaborts 和 cfloops。

像这样的东西(在我的脑海中......没有被执行)。

<CFFUNCTION NAME="MyDump">
    <CFARGUMENT NAME="OBJ" Required="TRUE">
    <CFDUMP VAR="#Obj#">
</CFFUNCTION>
<CFSCRIPT>
  if(cgi.REMOTE_ADDR eq "IP"){
    MyDump(Var1);
  }
</CFSCRIPT>
于 2009-05-22T20:06:51.403 回答
3

现在在开始 ColdFusion 11 的 cfscript 中允许使用普通标签名称

<cfscript>
    cfdump (var=#myVar#);
</cfscript>
于 2015-10-17T02:55:34.390 回答
2
<cffunction name="setAbort" access="private" returntype="void" output="false">
 <cfdump var="#arguments#"/><cfabort>
</cffunction>
于 2009-05-26T17:33:17.490 回答
-2

对于转储,我们使用 Writedump(myvar); 我们使用 abort 而不是 cfscript 和相同的;而不是在任何实例中退出程序的执行。我们使用 writeoutput(); 代替

 <cfoutput>#myvar#</cfoutput>

下面是 cfscript 中转储和中止的代码。

writedump(myvar); for dump

abort; for stop execution of programm 

writeoutput(myvar); for output within cfscript
于 2014-01-10T17:05:24.080 回答