Sometimes it is convenient to be able to have variable
variable names. That is, a variable name which can be set and
used dynamically. A normal variable is set with a statement
such as:
A variable variable takes the value of a variable and
treats that as the name of a variable. In the above example,
hello,
can be used as the name of a variable by using two dollar
signs. i.e.
At this point two variables have been defined and stored
in the PHP symbol tree: $a with
contents "hello" and $hello with
contents "world". Therefore, this statement:
produces the exact same output as:
i.e. they both produce: hello
world.
In order to use variable variables with arrays, you have
to resolve an ambiguity problem. That is, if you write $$a[1] then the parser needs to know if
you meant to use $a[1] as a
variable, or if you wanted $$a as
the variable and then the [1] index from that variable. The
syntax for resolving this ambiguity is:
${$a[1]} for the first case and
${$a}[1] for the second.
|