ColdFusion 9和ColdFusion 7之间在CFScript方面的向后兼容性?

时间:2011-07-20 11:41:33

标签: coldfusion

我是一个完整的ColdFusion新手,所以请提前为我即将到来的无知道歉。

我们遇到了现有CFScript的问题。有问题的脚本包含以下行:

...
if (fields.length() != 0) {
    // do something
}
...

该脚本在ColdFusion 9中成功运行,但在尝试在ColdFusion 7中运行脚本时,我们看到以下消息:

...
Invalid token '!' found on line...
...

我猜ColdFusion 7不喜欢'!='运算符,我是否正确?

如果是这样,CFScript是否存在其他可能导致我们绊倒的向后兼容性问题?我一直在寻找资源,但似乎没有任何确定性。

感谢。

2 个答案:

答案 0 :(得分:8)

是的,在CF7中,您需要使用ColdFusion的本机比较运算符,在您的情况下neq

替换

  • ==eq
  • !=neq
  • >gt
  • <lt
  • >=gte
  • <=lte
  • %mod

你很高兴。这些运算符向上兼容,CF9将理解它们。

除此之外,

  • 你需要在ColdFusion 7的函数顶部将所有你的局部变量(用var声明的那些变量)分组。这个限制已经在以后的ColdFusion版本中消失了,但是以这种方式编写的脚本当然会继续运行。
  • 自CF9起有一个自动local范围。这个范围在CF7和CF8中不可用,但按照惯例,人们在CF7函数的顶部添加了var local = StructNew();,这也将在CF&gt;中工作。 7。

答案 1 :(得分:1)

你是对的 - 类似Javascript的运算符(!=,==,||等)仅在ColdFusion 9中引入,并提供了更多的脚本支持。

这主要与CFC的完整脚本支持有关,但可能还有很多其他的问题......