三元运算符炸毁

时间:2011-04-19 17:38:59

标签: coldfusion ternary-operator coldfusion-9

我想帮助我在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个   参数。

1 个答案:

答案 0 :(得分:9)

根据Adobe's documentationiif的函数语法如下所示:

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