ColdFusion多重检查已定义(会话),且不为空

ColdFusion多重检查已定义(会话),且不为空,coldfusion,Coldfusion,我想说的是,如果这是定义的,而不是空白的,请显示这 <cfif (isDefined("session.checkout.info.Certificate_2")) is not ""> 我还尝试: <cfif (isDefined("session.checkout.info.Certificate_2")) neq ""> 有人能告诉我为什么字符串为空时仍显示此信息吗?考虑使用structKeyExists(它的开销比isDefined低),但现在您可以:

我想说的是,如果这是定义的,而不是空白的,请显示这

<cfif (isDefined("session.checkout.info.Certificate_2")) is not "">

我还尝试:

<cfif (isDefined("session.checkout.info.Certificate_2")) neq "">


有人能告诉我为什么字符串为空时仍显示此信息吗?

考虑使用structKeyExists(它的开销比isDefined低),但现在您可以:

<cfif
    isDefined("session.checkout.info.Certificate_2")
    AND session.checkout.info.Certificate_2 NEQ "">


如果它存在,它将检查它是否为空。如果它不存在,则不会检查值。

大小写在CFML中不敏感。提示:短语“不工作”。。。没有告诉我们太多;-)。对于任何问题,最好总结1)实际结果和2)它们与您预期的不同之处。预先包含所有相关信息可确保您获得最佳响应。此外,我建议先阅读文档。返回“true”或“false”。这两个都不是空字符串,因此正如您所期望的,cfif表达式的计算结果将始终为true。那么只验证变量存在的
如何。它不测试该值。这取决于他们是否设置了默认值,可能有效,也可能无效。(旁注,此处不需要额外的括号。)