IIF | |||
説明
Boolean 条件付きのダイナミックな式を評価します。式が true または false のどちらであるかによって、2 つの文字列式の 1 つをダイナミックに評価し、その結果を返します。この関数は、HTML に cfif タグをインラインで組み込むときに便利です。 通常の条件付きの処理については、cfif を参照してください。エラー処理については、cftry を参照してください。詳細については、『ColdFusion MX 開発ガイド』 を参照してください。 |
|||
戻り値
結果が true の場合は、Evaluate(string_expression1) の値。結果が false の場合は、Evaluate(string_expression2) の値。 |
|||
カテゴリ
決定関数、ダイナミック評価関数 |
|||
関数のシンタックスIIf(condition, string_expression1, string_expression2) |
|||
関連項目
DE、Evaluate |
|||
パラメータ
|
|||
使用方法
IIf 関数は、次のコードの省略形です。 <cfif condition> <cfset result = Evaluate(string_expression1)> <cfelse> <cfset result = Evaluate(string_expression2)> </cfif> 式 string_expression1 と string_expression2 は文字列式である必要があります。したがって、これらの式は、IIf のパラメータとして直接評価されません。例 : IIf(y is 0, DE("Error"), x/y) y=0 の場合は、3 番めの式が x/0 の値になり有効でないため、エラーが発生します。 ColdFusion は、string_expression1 と string_expression2 を評価します。文字列自体を返すには、DE 関数を使用してください。
変数が未定義の場合、ColdFusion では、この関数を処理する際にエラーが発生します。次の例で、この問題を示します。 #IIf(IsDefined("Form.Deliver"), DE(Form.Deliver), DE("no"))# これにより、「Error resolving parameter FORM.DELIVER」 が返されます。 この問題を避けるには、DE 関数、および Evaluate 関数をコードで次のように使用します。 #IIf(IsDefined("Form.Deliver"), Evaluate(DE("Form.Deliver")), DE("no"))# これにより、"no" が返され、ColdFusion ではエラーが発生しません。 次の例では、LocalVar が未定義です。ただし、LocalVar をシャープ記号 (#) で囲まなければ、このコードは正しく機能します。 <cfoutput> #IIf(IsDefined("LocalVar"), "LocalVar", DE("変数が定義されていません。"))# </cfoutput> 出力は次のようになります。 変数が定義されていません。 次のコード内のように LocalVar をシャープ記号 (#) で囲むとエラーが発生し、パラメータの変換エラーメッセージが出力されます。これは、ColdFusion により、最初の状態である IsDefined("LocalVar") が評価されなかったためです。 別の例を示します。 <cfoutput> #IIf(IsDefined("LocalVar"), DE("#LocalVar#"), DE("変数が定義されていません。"))# </cfoutput> エラーメッセージは次のようになります。 Error resolving parameter LOCALVAR LocalVar はシャープ記号 (#) により最初に評価されるため、DE 関数は LocalVar の評価の影響を受けません。 |
|||
例<h3>IIf Function の例</h3> <p>IIf は、条件を評価し、Boolean の結果により string expression 1 または string expression 2 を 評価します。<I>(true: expression 1 を実行; false: expression 2 を実行)</I>.</p> <p>式 IIf( Hour(Now()) GTE 12, DE("午後または夕方"), DE("朝")) is:<br><b> <cfoutput> #IIf( Hour(Now()) GTE 12, DE("午後または夕方"), DE("朝"))# </cfoutput> </b> |
CONDITION | |
ブール値として評価できる任意の式です。 |
STRING_EXPRESSION1 | |
文字列、または文字列を含んでいる変数です。条件が true の場合に評価して返す文字列式 です。 |
STRING_EXPRESSION2 | |
文字列、または文字列を含んでいる変数です。条件が false の場合に評価して返す文字列式 です。 |