coldfusion - 三元运算符爆炸

标签 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));

然而,它一直在爆炸:

Parameter validation error for the IIF function. The function takes 3 parameter.

最佳答案

根据 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

关于coldfusion - 三元运算符爆炸,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5720382/

相关文章:

php - Javascript 是否像 PHP 一样支持短三元(而不是变体)?

html - 使图像响应

coldfusion - cflocation 在 CF10 中不再有效

coldfusion - 如何删除存储在 session 中的项目?

mysql - 根据记录号将记录冒泡到mySQL查询的顶部

coldfusion - ColdFusion jnbridge 许可证是否允许(命令行)使用 jnbproxy?

java - Coldfusion 9 使用 Java 对象

orm - 如何在 CF9 中使用分离对象?

javascript - 如何使用三元运算符更改 AngularJS 中 ng-model 的值?

swift - 三元运算符结合性