サーチ…


パラメーター

属性説明
(必須)パラメータ/変数の名前。
デフォルト (オプション)存在しない場合にパラメータを設定する値。
最大 (オプション)最大有効値。範囲の検証にのみ使用されます。
(オプション)最小有効値。範囲の検証にのみ使用されます。
パターン (オプション)パラメータが一致しなければならないJavaScript正規表現。 regexまたはregular_expressionの検証にのみ使用されます。
タイプ (オプション)データの有効な形式。

cfsetの使用

<cfset>タグを使用してColdFusion変数を設定できます。出力変数に、あなたはハッシュで変数名を囲む必要がある#シンボルとで囲み<cfoutput>タグ。

<cfset variablename="World!">
<cfoutput>
    Hello #variablename#
</cfoutput>

cfparamの使用

<cfparam>タグは、変数が存在しない場合は作成します。 default属性を使用してdefault値を割り当てることができます。これは、変数を作成したいが、以前に別の場所に作成されている場合は上書きしたくない場合に使用できます。

ここで変数は以前に設定されていないので、 <cfparam>タグが割り当てられます。

<cfparam name="firstName" default="Justin">
<cfoutput>
    Hello #firstName#
</cfoutput>

ここで変数は<cfset>タグを使用して既に割り当てられているので、この値は<cfparam>タグのデフォルト値を上書きします。

<cfset firstname="Justin">

<cfparam name="firstName" default="Barney">
<cfoutput>
    Hello #firstName#
</cfoutput>

変数が存在するかどうかの確認

変数がスコープ内で定義されているかどうかは、ColdFusionのStructKeyExists()関数を使用して確認できます。これは<cfif>タグ内で使用して、存在しない変数を参照しようとするとエラーメッセージが表示されないようにします。この機能を使用して、ユーザーが特定の操作を実行したかどうかを判断することもできます。関数の構文は次のとおりです。

StructKeyExists(structure, "key")

次の例では、 firstName variablesスコープに存在するかどうかを確認しvariables

<cfif StructKeyExists(variables, "firstName")>
    Hello #variables.firstname#!
<cfelse>
    Hello stranger!
</cfif>

また、次の関数を使用することもできます。

isDefined("scopeName.varName")

あいまいさを避けるために、スコープを宣言することをお勧めします。たとえば、スコープtest変数がある場合

<cfset test.name = "Tracy" />

グローバルスコープ内のnameをテストすると、 true結果が得られtrue

isDefined("name") <!--- true --->
isDefined("x.name") <!--- false--->
isDefined("test.name") <!--- true --->

可変スコープの設定

アプリケーション変数をオブジェクトスコープに設定するのが一般的な方法です。これにより、他のスコープ内の変数との区別や識別が容易になります。

CFCのVariablesスコープはCFC専用です。このスコープで変数を設定すると、CFCを呼び出すページで変数を表示することはできません。

<cfparam name="variables.firstName" default="Timmy">
<cfset variables.firstName="Justin">

呼び出しページと共有されるスコープには、フォーム、URL、リクエスト、CGI、Cookie、クライアント、セッション、アプリケーション、サーバー、およびFlashがあります。これらのスコープの変数は、CFCに含まれるすべてのページでも使用できます。

CFC:

<cfset url.sessionId="23b5ly17">

<cfinclude template="check_session.cfm">

check_session.cfm

<cfif url.sessionId eq "23b5ly17">
    <p>Welcome back!</p>
</cfif>


Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow