ColdFusion中是否支持常量?

Las*_*zlo 7 coldfusion coldfusion-9

我正在使用ColdFusion 9并检查了文档,但它不明确.

http://help.adobe.com/en_US/ColdFusion/9.0/Developing/WSc3ff6d0ea77859461172e0811cbec0999c-7ff1.html

(我有PHP背景并寻找类似于PHP常量的东西)

谢谢

Mig*_*l-F 19

不,ColdFusion没有常量.我认为在大多数情况下,开发人员只需使用一些命名约定(例如ALL_CAPITALS中的变量名称)设置变量,然后永远不会更改它的值.这在其他语言中并不是一个常数,你必须要小心不要更改值(因为它不是真正的常量).我以前做过这个,通常在应用程序范围内设置这些"常量",以便它们随时可用.

之前有一个增强请求打开了.但是,看起来它已被关闭并推迟.

亚当·卡梅隆去年在博客上发表过关于此事的博文,并引用了相同的增强请求.


bar*_*nyr 11

不,不是作为母语功能.您链接到的页面中的关键位是"ColdFusion不允许您为常量命名"

我认为该页面实际上是在讨论文字,而不是常量.

如果你想支持不可修改的常量,我认为你需要使用一个对象来封装值:

component displayname="constant values for my app" {
  property name="mailServer" default="127.0.0.1" getter=true setter=false
  property name="password" default="supersecret" getter=true setter=false
}
Run Code Online (Sandbox Code Playgroud)

然后,您可以在需要它的任何范围(例如应用程序或请求)中设置它,然后调用application.constants.getMailServer()

它不像@Miguel-F解决方案那么简洁,这是我大部分时间都在使用的解决方案,但它在这里作为另一种选择.