【发布时间】:2010-12-15 16:59:54
【问题描述】:
在 PHP 中我可以做到: $var = (int) $_POST['var'];
有没有办法将 ColdFusion 变量显式设置为整数或字符串?
【问题讨论】:
-
这不是type hint。那是type casting(向下滚动一点,没有锚点)。
标签: coldfusion
在 PHP 中我可以做到: $var = (int) $_POST['var'];
有没有办法将 ColdFusion 变量显式设置为整数或字符串?
【问题讨论】:
标签: coldfusion
变量在 CF 中是无类型的。虽然如果您想将变量评估为数字或字符串,您可以这样做:
#Val(<variable>)#
对于字符串
#ToString(<variable>)#
【讨论】:
根据您希望对无法转换的数据发生的情况,也许您需要 cfparam?
<cfparam name="form.v" type="numeric"/>
如果 form.v 不存在或不是数字,则会抛出异常。
您还可以测试一个值是否为数字(或任何其他类型):
<cfif isNumeric(form.v)>
您可以将字符串“转换”为数值:
<cfset v = val(form.v) />
【讨论】:
除了其他答案中的好信息外,值得一提的是,您可以使用isvalid() 来查看无类型值是否与一堆不同的条件匹配:
isvalid('integer',x);
isvalid('float',x);
isvalid('string',x);
...等等。还有一些更高级别的,例如:
isvalid('email',x);
isvalid('telephone',x);
有时您必须将无类型值强制转换为“真”类型——例如,当您想将参数传递给具有多个签名的 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
【讨论】: