ColdFusion是否支持类型提示?

时间:2010-12-15 16:59:55

标签: coldfusion

在PHP中,我可以这样做: $ var =(int)$ _POST ['var'];

有没有办法将ColdFusion变量显式设置为整数或字符串?

3 个答案:

答案 0 :(得分:7)

变量在CF中是无类型的。虽然如果要将变量评估为数字或字符串,可以执行以下操作:

#Val(<variable>)# 

和字符串

#ToString(<variable>)#

答案 1 :(得分:4)

根据您想要为无法转换的数据而发生的事情,您可能想要cfparam吗?

<cfparam name="form.v" type="numeric"/>

如果form.v不存在或不是数字,那将抛出异常。

您还可以测试值是否为数字(或任何其他类型):

<cfif isNumeric(form.v)>

您可以将字符串'转换'为数值:

<cfset v = val(form.v) />

答案 2 :(得分:1)

除了其他答案中的好信息外,值得一提的是,您可以使用isvalid()查看无类型值是否符合一系列不同的标准:

isvalid('integer',x);
isvalid('float',x);
isvalid('string',x);

...等。还有一些更高级别的,如:

isvalid('email',x);
isvalid('telephone',x);

有时您必须将无类型值强制转换为“true”类型 - 例如,当您要将参数传递给具有多个签名的Java方法时。您可以使用javacast(),如下所示:

x = "01";
myJavaFunc.doSomething( x ); // ambiguous -- could be a string or number
myJavaFunc.doSomething( javacast('int', x ) ); // does something
myJavaFunc.doSomething( javacast('string', x ) ); // does something else