我认为CFC中定义为cfscript函数的方法默认是output = false,但是当我在cfcexplorer.cfc中打开CFC(浏览器直接到CFC)时,它表示输出:启用.
cfcexplorer.cfc的Bug?
Nat*_*utz 17
简短的回答:没关系.
cfscript除非您从中显式调用writeOutput(),否则不会输出任何内容.这包括函数cfscript以及cfscript函数外的任何代码.
这与CF标签的语法不同,默认情况下,它会在标签之间输出至少空格.在cfscript,您编写的任何文本都将由CFML引擎编译.在CF标签中,您编写的任何文本都将写入输出缓冲区并发送到浏览器.
答案很长:与未指定输出属性相同.
cfscript块不输出任何东西.除非包含,否则任何标记块cfsilent都会输出空格,如果没有别的话.是的,即使是cffunction,但如果output属性设置为false,则会丢弃输出.
Peter Boughton答案的本质是正确的.它既不包裹cfsilent也不包裹cfoutput.输出不被禁止,但除非您明确地执行,否则不会发生.
您始终可以将基于标记的cffunction脚本与脚本结合起来,以获得两全其美的效果.就像是...
<cffunction name="x" output="false" access="package">
<cfargument name="y" type="string" required="false" default="YY" />
<cfscript>
var someValue = y & "something";
writeOutput("test"); // this will not be written
return someValue;
</cfscript>
</cffunction>
Run Code Online (Sandbox Code Playgroud)
这允许您指定cffunction标记的输出和访问,以及允许参数是可选的(您无法通过cfscript函数执行),然后使用cfscript填充正文,包括var语句和函数返回.
当然,该功能,如果你删除output属性或将其更改为true,它会输出" test然后返回".