我正在尝试写一个If语句,如果"session.checkout.info.abc_1Certificate_1"
存在并且不是空白则显示它。但如果"session.checkout.info.abc_1Certificate_1"
为空,则不要显示。
这是我提出的,但它无法正常工作..
<cfif (len(trim("session.checkout.info.abc_1Certificate_1")))>
Certificate: #session.checkout.info.abc_1Certificate_1#
</cfif>
答案 0 :(得分:4)
你真的很想要这样的东西:
<cfif structKeyExists(session.checkout.info,"abc_1Certificate_1") AND len(trim(session.checkout.info.abc_1Certificate_1)) GT 0>
这就是说:如果结构abc_1Certificate_1
中有一个名为session.checkout.info
的密钥,并且删除了任何填充空格的session.checkout.info.abc_1Certificate_1
值的长度大于0,那么。 ..
如果session.checkout.info.abc_1Certificate_1
不存在,则len(trim(session.checkout.info.abc_1Certificate_1))
通常会抛出错误,但由于ColdFusion首先处理AND
左侧的语句部分(并且电路评估)CF不会费心去审查声明的其余部分。
答案 1 :(得分:4)
试试这个
<cfif isDefined("session.checkout.info.abc_1Certificate_1")
AND len(trim(session.checkout.info.abc_1Certificate_1))>
Certificate: #session.checkout.info.abc_1Certificate_1#
<cfelse>
session.checkout.info.abc_1Certificate_1 doesn't exist or is blank
</cfif>