2011-04-19 71 views
2

我想ColdFusion的一些帮助,我的语法如下三元运算符(而保持吹):三元操作符炸毁

iif(structKeyExists(session, "newUser") ? session.newUser.planId : 0) 

这是下面的模型调用的一部分:

user = model("user").new(UUID=createUUID(), planId=iif(structKeyExists(session, "newUser") ? session.newUser.planId : 0)); 

然而,它不断吹起:

IIF 函数的参数验证错误。该功能需要3 参数。

回答

9

Adobe's documentation,为iif函数语法如下:

IIf(condition, string_expression1, string_expression2) 

所以你的情况,你会这样称呼它:

iif(structKeyExists(session, "newUser"), session.newUser.planId, 0) 

这是从不同三元运算符(?:),其描述为here,并遵循以下语法:

(Boolean expression)? expression1 : expresson2 

哪,你的情况,应该是这样的:

planId=structKeyExists(session, "newUser") ? session.newUser.planId : 0 
+1

有趣。如果我以原始语法删除'iif',则该函数可以正常工作。如果我添加了iif,你的语法就可以工作......我想我把三位一体的iif()弄糊涂了:/ - 如果你可以追加你的答案来解释它,那真是太好了。 – Mohamad 2011-04-19 17:44:25

+1

@Mohamad当然,完成了。 – Donut 2011-04-19 17:47:30