Coldfusion cfscript中的dump函数在哪里?

Coldfusion cfscript中的dump函数在哪里?,coldfusion,coldfusion-9,Coldfusion,Coldfusion 9,可能重复: 我是Coldfusion的新手,不知道是否有人知道在脚本块中访问函数的方法。我在那里找不到叫它的方法 为什么Adobe删除了它?还是他们现在把它叫做别的什么 抱歉-我知道这可能是一个很基本的问题,但就像我说的,我是新来的。writeDump() 显然,在ColdFusion 9中,它被添加为writeDump(),因此您应该能够从cfscript块中使用它。 所以如果你有CF9,那么你很好 如果您使用的旧版系统不支持新引入的writeDump()函数,就像我们一样,您可以为它编写一

可能重复:

我是Coldfusion的新手,不知道是否有人知道在脚本块中访问函数的方法。我在那里找不到叫它的方法

为什么Adobe删除了它?还是他们现在把它叫做别的什么

抱歉-我知道这可能是一个很基本的问题,但就像我说的,我是新来的。

writeDump()

显然,在ColdFusion 9中,它被添加为writeDump(),因此您应该能够从cfscript块中使用它。

所以如果你有CF9,那么你很好

如果您使用的旧版系统不支持新引入的writeDump()函数,就像我们一样,您可以为它编写一个包装器,并将它放在所有文件都可以访问的地方

这是我编写的包装器,短期调试时可以将其放在您正在处理的cfc文件上(尽管在提交代码之前将其删除,否则会造成混乱),或者您可以将其放在全局某个位置,以便从共享范围调用它

以下是您可以使用的包装器函数的示例:

<cffunction name="dump" access="private" returntype="void" hint="dump wrapper">
    <cfargument name="stuffToDump" type="any" required="true" hint="what you want to dump">
    <cfargument name="abort" type="any" default="false" hint="abort after dump">
    <cfargument name="expand" type="any" default="false" hint="expand output">
    <cfdump var="#arguments.stuffToDump#" expand="#arguments.expand#">
    <cfif #arguments.abort# EQ 1>
        <cfabort>
    </cfif>
</cffunction>

也许有更好的方法解决这个问题,但这就是我目前使用的方法

您可以(暂时)将其放在当前正在处理的cfc文件中,但显然不要将其提交到代码库中,因为您不希望在所有文件上都使用dump函数

或者,您可以将其永久地放在一个cfinclude文件中,然后(再次-临时)将其包含到正在调试的文件中

我想另一种选择是把它放到Application.cfc上。此文件有许多标准方法,但您也可以定义要包含在其中的其他方法。然后,您的dump()函数在应用程序范围内可用

在Application.cfc文件中有一个很好的信息页面

我甚至见过它在服务器范围内使用,但这永远不应该在生产代码上使用。对于调试,我想作为最后的手段,请确保您记得删除它

就我个人而言,我认为这两个选项可能都很不理想,Adobe花了这么长时间才提供了一个脚本来替代这个函数,这真是太遗憾了。这样可以省去很多痛苦

但是,如果您使用的是CF9,那么所有这些都与您无关,您可以使用新的writedump()函数,现在他们终于添加了它。

脚本的等价物是()


cfoutput和cflog使用了相同的模式,带有()和()函数。

更清楚一点,并提供一个示例:

<cfscript>
   SomeString = 'ABC';
   writeDump(SomeString);
</cfscript>

SomeString='ABC';
writeDump(SomeString);

彼得的答案100%正确。

哦,是的。谢谢,我会尝试一下。ColdFusion确实有
cfdump
的脚本版本。是啊,是吗?很抱歉就像我说的我是coldfusion的新手。CF文档中没有提到这一点。谢谢。如果有必要写一个包装器(它不是),你可以简单地写:
这不是正确的答案!!有一个脚本相当于Peter Boughton发布的cfdump。我一直在使用它,它完全等同于。在此之前,您必须创建一个UDF来从CFSCRIPT运行它。*耸耸肩*这个问题被显式标记为CF9,所以这里不是真正的问题。无论如何,它只是