Publishers of technology books, eBooks, and videos for creative people

Home > Articles > Web Design & Development > Adobe ColdFusion

  • Print
  • + Share This
This chapter is from the book

Variable Scopes

As we've already seen, variables can contain varying data types. Variables also can come in varying scopes. A scope is the context in which a variable exists, and it determines how long its data persists. To put it simply, a variable's scope determines where it lives, how you access it, and how long its data hangs around.

So far, we have just been using simple local variables. A local variable lives only in the template in which it was created. For example, if we use <CFSET Message="I am a local variable"> to set the value of a variable called Message in a ColdFusion template called page1.cfm, we can display the value of that variable anywhere in that template simply by using <CFOUTPUT>#Message#</CFOUTPUT>. However, if we were to attempt to use <CFOUTPUT>#Message#</CFOUTPUT> in another template called page2.cfm, ColdFusion would return an error because the Message variable does not exist in the page2.cfm template. If you want the value of a variable to persist from one template/page to another, you must use a different scope.

NOTE

The value of a local variable will also be available to any included templates that are called using <CFINCLUDE>. Because using <CFINCLUDE> is essentially the equivalent of copying and pasting code into the calling template, local variable values set on the calling template will be available for use in the code of the included page code as well.

Table 2.2 lists some of the different types of scopes we will be using throughout this book. For a complete list of scopes and their descriptions, see the "Language Reference" section of this book's web site at http://www.LearnColdFusionMX.com.

Table 2.2 ColdFusion Variable Scopes

Scope

Description

Variables

As previously described, a local variable is only available (local) on the page in which it was created and any included pages.

Form

This scope is for variables passed via HTML or ColdFusion forms using the post method of the form. See the section "Passing Values with Forms" later in this step.

URL

This scope contains variables passed via parameters added to the end of a URL, such as http://www.anysite.com?id=1175. See the section "Passing Values Via the URL" later in this step.

CGI

This scope is for environment variables that automatically accompany each page request and server response, such as browser type and server name.

Cookie

This scope is for variables used to read and write browser cookies.

Client

This scope contains variables associated with a particular client (user). They are maintained as a user moves from page to page and are available over multiple browser sessions, or visits. For more information on client variables, see Step 8, "ColdFusion Application Framework."

Session

This scope contains variables associated with one client for one session or visit. These variables time out when a user closes their browser or after periods of inactivity. For more information on session variables, see Step 8.

Application

This scope contains variables that are available throughout one entire application (web site) on a server. For more information on application variables, see Step 8.

Server

This scope contains variables that are set for a particular ColdFusion server and that are available to all applications (web sites) on that server. For more information on server variables, see Step 8.


  • + Share This
  • 🔖 Save To Your Account