【问题标题】:Does ColdFusion support type hinting?ColdFusion 是否支持类型提示?
【发布时间】:2010-12-15 16:59:54
【问题描述】:

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

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

【问题讨论】:

标签: coldfusion


【解决方案1】:

变量在 CF 中是无类型的。虽然如果您想将变量评估为数字或字符串,您可以这样做:

#Val(<variable>)# 

对于字符串

#ToString(<variable>)#

【讨论】:

  • 谢谢,回答得差不多了。
【解决方案2】:

根据您希望对无法转换的数据发生的情况,也许您需要 cfparam?

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

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

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

<cfif isNumeric(form.v)>

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

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

【讨论】:

    【解决方案3】:

    除了其他答案中的好信息外,值得一提的是,您可以使用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
    

    【讨论】:

      猜你喜欢
      • 2014-07-15
      • 2020-05-26
      • 1970-01-01
      • 1970-01-01
      • 2016-08-05
      • 2013-07-15
      • 2021-07-15
      • 2019-04-24
      • 1970-01-01
      相关资源
      最近更新 更多