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

rya*_*yan 4 coldfusion

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

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

...
if (fields.length() != 0) {
    // do something
}
...
Run Code Online (Sandbox Code Playgroud)

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

...
Invalid token '!' found on line...
...
Run Code Online (Sandbox Code Playgroud)

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

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

谢谢.

Tom*_*lak 8

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

更换

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

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

除此之外,

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