cfset

説明

ColdFusion の値を設定します。変数が存在しない場合は変数を作成し、値を割り当てます。また、関数の呼び出しにも使用されます。

カテゴリ

変数操作タグ

シンタックス

<cfset  
    var variable_name = expression>

関連項目

cfcookiecfparamcfregistrycfsavecontentcfschedule、『ColdFusion アプリケーションの開発』のElements of CFML

属性

属性

必須 / オプション

デフォルト

説明

variable_name

必須

 

変数です。

var

オプション

 

キーワードです。値は取りません。変数が関数に対してローカルであることを示します。変数は、関数の現在の呼び出しの間だけ存在します。

使用方法

アプリケーションでは cfset タグをさまざまな方法で使用できます。

関数の呼び出し

cfset タグを使用して関数を呼び出すときに、その関数が値を返さない場合や、関数から返される値を使用する必要がない場合は、関数の戻り値を変数に代入する必要はありません。たとえば、次の例は Application スコープから MyVariable 変数を削除する、有効な ColdFusion cfset タグです。

<cfset StructDelete(Application, "MyVariable")> 

配列

次の例では、新しい配列を変数 months に割り当てます。

<cfset months = ArrayNew(1)>

次の例では、配列 Scores の長さに解決される変数 Array_Length を作成します。

<cfset Array_Length = ArrayLen(Scores)>

次の例では、配列 months 内のインデックス位置 2 に値 February を割り当てます。

<cfset months[2] = "February">

ダイナミックな変数名

次の例では、変数名自体が変数となっています。

<cfset myvariable = "current_value"> 
<cfset "#myvariable#" = 5>

関数のローカル変数

var キーワードは、その変数が、cffunction タグで定義された関数の本文内でのみ利用可能であることを指定します。関数の 1 つの呼び出しで設定された変数の値は、関数の他の呼び出しでは利用できません。var キーワードは、CFScript の var ステートメントに相当します。var キーワードを使用する場合は、次のルールが適用されます。

  • var キーワードを使用するすべての cfset タグを、cffunction タグの本文内に置く必要があります。cffunction タグの外にある cfset タグ内で var キーワードを使用すると、ColdFusion のエラーメッセージが表示されます。

  • var キーワードを使用するすべての cfset タグを、cffunction タグ本文の最初、つまり、他のあらゆる ColdFusion タグの前に置きます。

次の例では、この新しいキーワードの使用方法を示します。

<cffunction name="myFunct"> 
    <cfset var myVar = "This is a test"> 
    <cfreturn myVar & " Message."> 
</cffunction> 
<cfoutput>#myFunct()#</cfoutput>

この例では、関数 myFunct が実行されるときにのみ変数 myVar が存在し、ColdFusion ページの他の場所ではこの変数を利用できません。

COM オブジェクト

次の例では、COM オブジェクトが作成されます。cfset タグを使用して、COM オブジェクトのインターフェイス内のメソッドまたはプロパティごとに値を定義します。最後の cfset では、COM オブジェクトの SendMail メソッドからの戻り値を保管する変数を作成します。

<cfobject action = "Create"  
    name = "Mailer"  
    class = "SMTPsvg.Mailer">  
 
<cfset MAILER.FromName = form.fromname>  
<cfset MAILER.RemoteHost = RemoteHost>  
<cfset MAILER.FromAddress = form.fromemail>  
<cfset MAILER.AddRecipient("form.fromname", "form.fromemail")>  
<cfset MAILER.Subject = "Testing cfobject">  
<cfset MAILER.BodyText = "form.msgbody">  
<cfset Mailer.SMTPLog = "logfile">  
<cfset success = MAILER.SendMail()>  
<cfoutput> #success# </cfoutput>

<!--- This example shows how to use cfset. ---> 
<cfquery name = "GetMessages" dataSource = "cfdocexamples"> 
    SELECT * 
    FROM Messages 
</cfquery> 
 
<h3>cfset Example</h3> 
<p>cfset sets and reassigns values to local or global variables within a page. 
 
<cfset NumRecords = GetMessages.recordCount> 
<p>For example, the variable NumRecords has been declared on this 
    page to hold the number of records returned from query 
    (<cfoutput>#NumRecords#</cfoutput>). 
 
<p>In addition, cfset can be used to pass variables from other pages,  
        such as this example, which takes the url parameter Test from this 
        link: <a href = "cfset.cfm?test = <cfoutput> 
        #URLEncodedFormat("hey, you, get off of my cloud")#                    </cfoutput> 
        ">click here</A>) to display a message:  
<p> 
<cfif IsDefined ("url.test") is "True"> 
    <cfoutput><b><I>#url.test#</i></b></cfoutput> 
<cfelse> 
    <h3>The variable url.test has not been passed from another page.</h3> 
</cfif> 
 
<p>cfset can also be used to collect environmental variables, such as the  
    time, the IP address of the user, or another function or expression. 
 
<cfset the_date = #DateFormat(Now())# & " " & #TimeFormat(Now())#> 
<cfset user_ip = CGI.REMOTE_ADDR> 
<cfset complex_expr = (23 MOD 12) * 3> 
<cfset str_example = Reverse(Left(GetMessages.body, 35))> 
 
<cfoutput>  
    <ul>  
        <li>The date: #the_date#  
        <li>User IP Address: #user_ip#  
        <li>Complex Expression ((23 MOD 12) * 3): #complex_expr#  
        <li>String Manipulation (the first 35 characters of  
                the body of the first message in our query)  
                <br><b>Reversed</b>: #str_example#  
                <br><b>Normal</b>: #Reverse(str_example)#  
    </ul>  
</cfoutput>