在PHP中,我可以这样做: $ var =(int)$ _POST ['var'];
有没有办法将ColdFusion变量显式设置为整数或字符串?
答案 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