2011-04-19 69 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