爲了調試,我想將某些變量轉儲到我的網頁上。我怎麼能從一個cfscript標籤內做到這一點?如何在cfscript標籤內執行cfdump?
我嘗試以下,但它不工作:
<cfscript>
...
<cfif cgi.REMOTE_ADDR eq "IP">
<cfdump var="#var1#"><br/>
</cfif>
...
</cfscript>
什麼可以做任何線索?
爲了調試,我想將某些變量轉儲到我的網頁上。我怎麼能從一個cfscript標籤內做到這一點?如何在cfscript標籤內執行cfdump?
我嘗試以下,但它不工作:
<cfscript>
...
<cfif cgi.REMOTE_ADDR eq "IP">
<cfdump var="#var1#"><br/>
</cfif>
...
</cfscript>
什麼可以做任何線索?
在CF 9之前的版本中,您不能直接使用它。但是,您可以使用在CFLib中找到的dump() UDF。這裏有一個UDF的整個庫,它們模仿CF標籤,它們沒有直接的CFSCRIPT等價物。
ColdFusion 9(及更高版本)提供writeDump()
函數。
編寫自己的代碼也相當容易。你只需在cfml中定義一個函數而不是cfscript。您也可以使用它來執行cfabort和cfloops。
這樣的事情(關閉我的頭頂......未執行)。
<CFFUNCTION NAME="MyDump">
<CFARGUMENT NAME="OBJ" Required="TRUE">
<CFDUMP VAR="#Obj#">
</CFFUNCTION>
<CFSCRIPT>
if(cgi.REMOTE_ADDR eq "IP"){
MyDump(Var1);
}
</CFSCRIPT>
<cffunction name="setAbort" access="private" returntype="void" output="false">
<cfdump var="#arguments#"/><cfabort>
</cffunction>
是不是下面更加容易和簡單?
oAdmin = createObject("component", "cfide.adminapi.base");
oAdmin.dump(myVar);
它適用於CF7和轉發,也許甚至更早。
對於轉儲我們使用Writedump(myvar);而不是在cfscript中,我們使用abort;我們使用writeoutput();而不是在任何情況下退出執行程序。而不是
<cfoutput>#myvar#</cfoutput>
以下是cfscript中dump和abort的代碼。
writedump(myvar); for dump
abort; for stop execution of programm
writeoutput(myvar); for output within cfscript
現在普通的標籤名稱中不允許CFSCRIPT內開始的ColdFusion 11
<cfscript>
cfdump (var=#myVar#);
</cfscript>
密切相關:http://stackoverflow.com/questions/1917706/cfdump-cfcomponent-cfscript/1917756 – ale 2012-06-21 14:54:41