# CFSET

Use the CFSET tag to define a ColdFusion variable. If the variable already exists, CFSET resets it to the specified value.

### Syntax

    <CFSET variable_name=expression>

## Arrays

The following example assigns a new array to the variable "months".

    <CFSET months=ArrayNew(1)>

This example creates a variable "Array_Length" that resolves to the length of the array "Scores".

    <CFSET Array_Length=ArrayLen(Scores)>

This example assigns to index position two in the array "months" the value "February".

    <CFSET months[2]="February">

## Dynamic variable names

In this example, the variable name is itself a variable.

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

## COM objects

In this example, a COM object is created. A CFSET defines a value for each method or property in the COM object interface. The last CFSET creates a variable to store the return value from the COM object's "SendMail" method.

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

### Example

    <!--- This example shows how to use CFSET --->
    <CFQUERY NAME="GetMessages" DATASOURCE="cfsnippets">
    SELECT   *
    FROM     Messages
    </CFQUERY>
    <HTML>
    <HEAD>
    <TITLE>
    CFSET Example
    </TITLE>
    </HEAD>

    <BODY bgcolor=silver>
    <H3>CFSET Example</H3>

    <P>CFSET allows you to set and reassign values to local or
    global variables within a CF template.

    <CFSET NumRecords = GetMessages.RecordCount>
    <P>For example, the variable NumRecords has been declared on
    this template to hold the amount of records returned from
    our 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>Finally, CFSET can also be used to collect environmental
    variables, such as the time, the IP address of the user, or any
    other function or expression possible in ColdFusion.

    <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))>
    ...