为了调试,我想将某些变量转储到我的网页上。我怎样才能在cfscript标签内做到这一点?
我尝试了以下操作,但它无法正常工作:
<cfscript>
...
<cfif cgi.REMOTE_ADDR eq "IP">
<cfdump var="#var1#"><br/>
</cfif>
...
</cfscript>
关于可以做些什么的任何线索?
答案 0 :(得分:42)
您不能像在CF 9之前的版本中那样直接执行。但是,您可以使用在CFLib中找到的dump() UDF。那里有一整个UDF库,它们模仿没有直接CFSCRIPT等价物的CF标签。
ColdFusion 9(及以上)提供writeDump()
功能。
Adobe文档链接WriteDump()功能
答案 1 :(得分:31)
像使用writeOutput()
一样使用writeDump()请参阅CF 9参考资料中的writeDump
答案 2 :(得分:5)
以下是不是更容易和直接?
oAdmin = createObject("component", "cfide.adminapi.base");
oAdmin.dump(myVar);
它适用于CF7和前进,甚至更早。
答案 3 :(得分: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>
答案 4 :(得分:3)
现在,在启动ColdFusion 11的cfscript中允许使用普通标签名称
<cfscript>
cfdump (var=#myVar#);
</cfscript>
答案 5 :(得分:2)
<cffunction name="setAbort" access="private" returntype="void" output="false">
<cfdump var="#arguments#"/><cfabort>
</cffunction>
答案 6 :(得分:-2)
对于转储我们使用Writedump(myvar);而不是在cfscript中我们使用abort;而不是退出任何实例的程序执行。我们使用writeoutput();而不是
<cfoutput>#myvar#</cfoutput>
下面是cfscript中转储和中止的代码。
writedump(myvar); for dump
abort; for stop execution of programm
writeoutput(myvar); for output within cfscript