coldfusion - ColdFusion 用户定义函数名称的有效字符是什么?

标签 coldfusion

一些背景知识:我正在从事一个将另一种脚本语言的网络应用程序转换为 ColdFusion 的项目。我遇到的一个问题是旧技术有一些函数名称与 CF 中的函数相同,但工作方式略有不同。不幸的是,在大多数情况下我需要旧功能,所以我打算编写自己的函数。

为了尽量减少转换代码时的痛苦,我计划在每个函数前加上一个不常用于函数名称的字符,例如 $val()

我知道 $_ 在函数名中是有效的。我可以使用任何其他字符吗?我问是因为我知道那里的一些框架使用这个约定,我不想在未来的开发中与任何这些框架发生冲突。这样使用多个字符是否不合理,例如$_val()

最佳答案

我觉得使用 $_ 作为前缀是合理的。当然,您也可能想考虑通过包含在自定义范围结构(如“UDF”)中来为您的函数提供自定义“命名空间”,从而产生一个名为“UDF.val()”的函数;此外,您可以将它们打包在一个 CFC 中,并将它们作为组件方法访问。无论哪种方式,您都不会发生名称冲突。

编辑

为了测试您刚才关于与内置函数同名的自定义函数的评论,我做了一些小测试,看看这是不是真的。看起来您实际上可以构建与内置函数同名的函数,如果它们在自定义范围内:

<cffunction name="foo">
    <cfreturn "bar">
</cffunction>


<cfset udf = {}>

<cfset udf.IsDefined = foo>

<cfoutput>#udf.IsDefined()#</cfoutput>

此代码输出“bar”。

或者,如果您喜欢 CFC 方法:

foo.cfc

component {
  function IsDefined()
  {
   return "blah";
  }

}

调用代码:

<cfset udf2 = createObject("component", "foo")>
<cfoutput>#udf2.isDefined()#</cfoutput>

关于coldfusion - ColdFusion 用户定义函数名称的有效字符是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8388118/

相关文章:

email - 如何在 CF9 中使用 cfscript 发送带有附件的电子邮件?

ColdFusion 对象到字符串

java - 使用 ColdFusion 从 Outlook .msg 文件中提取附件

string - 如何连接两个字符串并将它们存储到相同的结构键中

jquery - 无法在 Kendo UI 的 Treeview 中进行选择

javascript - Coldfusion - 使用列表

coldfusion - 如何在 cfif 语句中放置多个 NOT 条件?

coldfusion - 为什么我的 ColdFusion 页面向搜索引擎返回一个空白页面?

coldfusion - 计划任务未运行 - Coldfusion 服务器管理

coldfusion - 如何在Coldfusion中绘制面积图