Skip to main content
December 16, 2009
Answered

Dynamically Named Session Variable?

  • December 16, 2009
  • 3 replies
  • 754 views

Is there any way that i can assign a session variable a name from a variable?

Something like this but that actually works?

<cfset variables.userid = 238>
<cfset session.user#variables.userid# = 1>

Thanks,

Ben

This topic has been closed for replies.
Correct answer ilssac
<cfset session["user" & variables.userid] = 1>

Learn about array notation of ColdFusion variables, it is a powerful concept.

3 replies

Inspiring
December 16, 2009

To elaborate on Ian's comment ...

There are two main forms of "structured variables" provided by ColdFusion.  (They are, of course, the "usual suspects" ...)

  • Arrays are simply one-based ordered collections of values.  (Each element can be a scalar, a struct, or an array.)
  • Structs are what Perl would call a hash, and other languages might call an "associative array."  Either way, elements are referred-to by keys which may be strings or numbers.  There are two equivalent notations:  variable.key and variable[key].  The practical difference between the two is that, in the second form, "key" may be an arbitrary expression.  The result of evaluating that expression becomes the key that is used.

The underlying implementation in both cases is provided by Java, because ColdFusion performs "on-the-fly" compilation into Java, which is what actually gets executed by the engine.

All of the predefined system variables are either arrays or structs, or at least, functionally appear to be.

December 16, 2009

Thank you very much!

Inspiring
December 16, 2009

<cfset session["user" & variables.userid] = 1>

ilssac
ilssacCorrect answer
Inspiring
December 16, 2009
<cfset session["user" & variables.userid] = 1>

Learn about array notation of ColdFusion variables, it is a powerful concept.