我不记得它叫什么,但我需要在CFSet语句中做一种条件语句。我的意思是类似下面的
siteSettings = {
mailserversmtpport = resourceBean.getValue('mailsmtp'), // SMTP Port (If the method returns no len() then default to 25)
mailserverpopport = resourceBean.getValue('mailpop'), // POP port (If the method returns no len() then default to 110)
};
所以我正在为邮件服务器构建一个带有smtp和pop端口的结构。我有一个从bean获取值的方法调用。如果该值不存在,则它将返回0长度字符串。如果没有使用cfif语句返回值没有长度,是否可以(在ColdFusion 8中)将值设置为25和110?
答案 0 :(得分:3)
siteSettings = {
mailserversmtpport = iif(len(resourceBean.getValue('mailsmtp')),de(resourceBean.getValue('mailsmtp')),de(25)),
mailserverpopport = iif(len(resourceBean.getValue('mailpop')),de(resourceBean.getValue('mailpop')),de(110))
};
答案 1 :(得分:3)
最好的,也是我认为最好的方法是在你的bean中添加两个方法:getMailSmtp()和getMailPop()。
将条件逻辑放在那里 - 因此如果没有指定,该方法将返回默认值。
这样的事情:
<cffunction name="getMailSmtp" returntype="string" output="false">
<cfif len(getValue("mailsmtp"))>
<cfreturn getValue("mailsmtp") />
<cfelse>
<cfreturn 25 />
</cfif>
</cffunction>
或者,您可以更改getValue()方法以接受第二个参数 - 默认值。然后,如果该值不存在,则返回默认值:
resourceBean.getValue("mailsmtp", 25)
我个人会选择第一种方法,因为这意味着无论何时在应用程序中调用getMailSmtp(),都会应用逻辑。
您甚至可以组合这些方法,因此getMailSmtp()方法返回getValue("mailsmtp", 25)
。
答案 2 :(得分:0)
不是iif的忠实粉丝。您可能正在考虑三元运算符。
是
<cfset x > 3 ? true : false />
但它只是CF9