Sometimes variable names can be a great convenience for programming. This means that variable names can be dynamically named and used. The usual variables are named by the following statements:
<?php $a = ' hello '; ? >
A mutable variable name refers to the use of a variable's value as the name of the variable. In the example above, by using two $ symbols, you can set the hello to a variable name, as in the following.
<?php $ $a = ' world '; ? >
With the above two statements, two variables are defined: The variable $ A, the contents are "Hello" and the variable $hello, the content is "world". So, the following language:
<?php echo "$a ${$a}"; ? >
Exactly the same as the output of the following statement:
<?php echo "$a $hello"; ? >
They all output: Hello world.
In order to use the variable variable name of the array, you need to solve a ambiguity problem. That is, if you write $ $a [1], the parser needs to know whether you mean to use $a[1] as a variable, or to use the $ $a as a variable, [1] to refer to the index of the variable. The syntax for solving this ambiguity is: The first case uses ${$a [1]}, and the second case uses ${$a}[1].
Class properties can also be accessed through variable property names. A mutable property name is obtained from the access scope of the variable where the call is generated. For example, if your expression is this: $foo-$bar, the runtime will look for the variable $bar within the scope of the local variable, and its value will be a property name for the $foo object. If the $bar is an array, it can be used.
Example 1 variable variable name
<?php class Foo { var $bar = ' I am bar '; } $foo = new Foo (); $bar = ' bar '; $baz = Array (' foo ', ' Bar ', ' baz ', ' Quux '); $bar Echo $foo. "N"; $baz echo $foo [1]. "n"; ? >
The above example will output the following results:
I am Bar. I am Bar.
Warning
Note that mutable variable names cannot be used on PHP functions and super Global array variables in classes. Variable $this is also a special variable that cannot be named dynamically.