代码之家  ›  专栏  ›  技术社区  ›  Diego Vinícius

cfset调用无变量函数

  •  3
  • Diego Vinícius  · 技术社区  · 7 年前

    这门语言的新功能,本周就开始用它编写代码了。

    所以我的问题是我刚开始使用CF11的新公司,他们主要是用标签编码的。我想知道是否可以打电话 cfset 没有变量声明。

    如果没有,用标记调用函数(没有返回)的更好方法是什么?

    <cfset myFunction()>
    

    我通常在cfset调用initiate函数,但它们都有返回。

    <cfset something = #initSomething()#>
    
    1 回复  |  直到 7 年前
        1
  •  7
  •   SOS    7 年前

    是的,在不捕获结果的情况下调用函数是完全正确的。遗憾的是,在旧的CF文档中曾经有很多这种语法。它给人一种错误的印象,即必须捕获函数的结果(并在任何地方使用多余的磅符号)。两者都不是真的。即使函数 返回一些东西,不需要捕获结果。如果你以后想用它做点什么的话。您可以随时调用函数并完全忽略结果。所以这两个都是有效的:

    <!--- 1. capture result ---> 
    <cfset result = getTimeNow()>
    <!--- 2. ignore result ---> 
    <cfset getTimeNow()>
    
    <!--- sample function --->
    <cffunction name="getTimeNow" return="date">
        <cfreturn now()>
    </cffunction>
    

    从技术上讲,没有什么能阻止您捕获不返回任何内容的函数的结果。然而,“result”变量将是未定义的,因此它实际上没有任何作用。

     <cfset result = doNothing()>
     <!--- this will error --->
     <cfoutput>#result#</cfoutput>
    
     <!--- sample function --->
     <cffunction name="doNothing" return="void">
        <!--- function that returns nothing --->
     </cffunction>
    
    推荐文章