Coldfusion 构造CFIF语句以在变量值不为空时显示内容
我试图编写一个If语句,其中IfColdfusion 构造CFIF语句以在变量值不为空时显示内容,coldfusion,coldfusion-10,Coldfusion,Coldfusion 10,我试图编写一个If语句,其中If“session.checkout.info.abc\u 1Certificate\u 1”存在且不为空,然后显示它。但是如果“session.checkout.info.abc\u 1Certificate\u 1”为空,则不显示它 这是我想出的办法,但它不能正常工作 <cfif (len(trim("session.checkout.info.abc_1Certificate_1")))> Certificate: #sess
“session.checkout.info.abc\u 1Certificate\u 1”
存在且不为空,然后显示它。但是如果“session.checkout.info.abc\u 1Certificate\u 1”
为空,则不显示它
这是我想出的办法,但它不能正常工作
<cfif (len(trim("session.checkout.info.abc_1Certificate_1")))>
Certificate: #session.checkout.info.abc_1Certificate_1#
</cfif>
证书:#session.checkout.info.abc#1证书#1#
你真的很想要这样的东西:
<cfif structKeyExists(session.checkout.info,"abc_1Certificate_1") AND len(trim(session.checkout.info.abc_1Certificate_1)) GT 0>
这就是说:如果在结构session.checkout.info
中有一个名为abc\u 1Certificate\u 1
的键,并且session.checkout.info.abc\u 1Certificate\u 1
的值的长度大于0,则
如果session.checkout.info.abc\u 1Certificate\u 1
不存在,则len(trim(session.checkout.info.abc\u 1Certificate\u 1))
通常会抛出错误,但由于ColdFusion首先处理和
左侧的语句部分(并使计算短路)CF不会费心检查语句的其余部分。试试这个
<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>
证书:#session.checkout.info.abc#1证书#1#
session.checkout.info.abc\u 1证书不存在或为空
如果有疑问,请查看您的数据。在这种情况下,添加一个cfelse块并输出一些变量和函数结果。从len(trim(“session.checkout.info.abc_1Certificate_1”))开始,由于双引号,您实际上是在检查文本字符串的长度“session.checkout.info.abc_1Certificate_1”
-而不是该名称的会话变量的值…另请参见:从左到右的过程IF语句不完全相同。逻辑和
运算符是导致错误的原因。