Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Coldfusion 构造CFIF语句以在变量值不为空时显示内容_Coldfusion_Coldfusion 10 - Fatal编程技术网

Coldfusion 构造CFIF语句以在变量值不为空时显示内容

Coldfusion 构造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:&nbsp;#sess

我试图编写一个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:&nbsp;#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:&nbsp;#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语句不完全相同。逻辑
运算符是导致错误的原因。