我是一个完整的ColdFusion新手,所以请提前为我即将到来的无知道歉。
我们遇到了现有CFScript的问题。有问题的脚本包含以下行:
...
if (fields.length() != 0) {
// do something
}
...
该脚本在ColdFusion 9中成功运行,但在尝试在ColdFusion 7中运行脚本时,我们看到以下消息:
...
Invalid token '!' found on line...
...
我猜ColdFusion 7不喜欢'!='运算符,我是否正确?
如果是这样,CFScript是否存在其他可能导致我们绊倒的向后兼容性问题?我一直在寻找资源,但似乎没有任何确定性。
感谢。
答案 0 :(得分:8)
是的,在CF7中,您需要使用ColdFusion的本机比较运算符,在您的情况下neq
。
替换
==
与eq
!=
与neq
>
与gt
<
与lt
>=
与gte
<=
与lte
%
与mod
你很高兴。这些运算符向上兼容,CF9将理解它们。
除此之外,
var
声明的那些变量)分组。这个限制已经在以后的ColdFusion版本中消失了,但是以这种方式编写的脚本当然会继续运行。local
范围。这个范围在CF7和CF8中不可用,但按照惯例,人们在CF7函数的顶部添加了var local = StructNew();
,这也将在CF&gt;中工作。 7。答案 1 :(得分:1)
你是对的 - 类似Javascript的运算符(!=,==,||等)仅在ColdFusion 9中引入,并提供了更多的脚本支持。
这主要与CFC的完整脚本支持有关,但可能还有很多其他的问题......